4

ブロック サイズが 128MB であると仮定すると、クラスターには 10GB が含まれます (したがって、使用可能なブロックは最大 80 個になります)。ディスク上で合計 128MB を占める 10 個の小さなファイル (ブロック ファイル、チェックサム、レプリケーションなど) と 10 個の HDFS ブロックを作成したとします。別の小さなファイルを HDFS に追加したい場合、使用可能なブロックを計算するために、HDFS は使用済みブロックまたは実際のディスク使用量の何を使用しますか?

80 ブロック - 10 ブロック = 70 の使用可能なブロックまたは (10 GB - 128 MB)/128 MB = 79 の使用可能なブロック?

ありがとう。

4

1 に答える 1

8

ブロック サイズは、クラスタ全体でファイルを分割して分散する方法を HDFS に示すだけです。HDFS には、物理​​的に予約されたブロック数はありません (必要に応じて、個々のファイルのブロック サイズを変更できます)。

あなたの例では、レプリケーション係数とチェックサム ファイルも考慮する必要がありますが、本質的に多くの小さなファイル (ブロック サイズ未満) を追加しても、「利用可能なブロック」を無駄にしたことにはなりません。必要に応じて (ここでも、レプリケーションによってファイルの保存に必要な物理データのフットプリントが増加することを覚えておく必要があります)、「使用可能なブロック」の数は 2 番目の計算に近くなります。

最後の注意 - 小さなファイルがたくさんあるということは、名前ノードがそれらを追跡するためにより多くのメモリ (ブロック サイズ、場所など) を必要とすることを意味し、一般に 128x1MB のファイルを単一の 128MB ファイルよりも効率的に処理することはできません (ただし、処理方法によって異なります)。再処理します)

于 2013-03-28T11:03:29.920 に答える