本 Hadoop: The Definitive Guide を読んでいるときに、次の行を含むこのページに出くわしました。
ネームノードは、特定のファイルのすべてのブロックが配置されているデータノードも認識していますが、システムの起動時にデータノードからこの情報が再構築されるため、ブロックの場所を永続的に保存することはありません。
これがどのように機能するかを理解するのに苦労しています。たとえば、レプリケーション ファクター 3 の 8 ノード クラスターに 1 GB のファイルをコピーするとします。したがって、各データノードには 1 つのブロックがあり、これらのブロックは他のノードにレプリケートされ、各ノードのブロックの総数は事実上 3 になります。 . これで、namenode は各ブロックの位置を含むインデックスを保持することになっています。しかし、テキストによると、 namenode がブロックの場所を永続的に保存しない場合、クラスターがシャットダウンされて再起動された後、それらはどのように再構築されますか。どのブロックがどのファイルに属しているかを知る方法はありません。誰かが私にこれを説明してもらえますか?