web-dev-qa-db-ja.com

Hadoopのどのデータノードにどのデータブロックがあるかを追跡する方法は?

データブロックが複製される場合、どのデータノードに複製されますか?複製されたブロックが存在する場所を示すツールはありますか?

24
Varshith

ファイル名がわかっている場合は、DFSブラウザで検索できます。

Namenode Webインターフェースに移動し、「ファイルシステムを参照」と言って、目的のファイルに移動します。ページの下部に、ファイル内のすべてのブロックのリストと、それらの各ブロックの場所が表示されます。あります。

注:HDFSファイルシステム内の実際のファイルをクリックすると、次のようになります。

ss#1

または、次を実行することもできます。

hadoop fsck / -files -blocks -locations

これは、すべてのブロックとそのすべての場所についてレポートします。

39
user188041

CERNによってオープンソース化されたNiceツールがあります-ブログ記事を参照してください https://db-blog.web.cern.ch/blog/daniel-lanza-garcia/2016-04-tool-visualise- block-distribution-hadoop-hdfs-cluster

ノード間だけでなく、それらのノード上のディスク間でもブロックの場所が表示されます(表形式のビュー)。

enter image description here

このプロジェクトのコードはここにあります: https://github.com/cerndb/hdfs-metadata

内部的には、このCERNのツールはHadoopへのAPI呼び出しを使用します-たとえば、 https://github.com/cerndb/hdfs-metadata/blob/master/src/main/Java/ch/cern/db/hdfs/ DistributedFileSystemMetadata.Java#L168

したがって、たとえば多くのファイルでこれを実行して統合結果を確認する場合は、CLIツールを使用するよりもはるかに高速です。

hdfs fsck / -files -blocks -locationsを使用すると、一度に1つのファイルのみを表示できます。

このツールを使用して、巨大な寄木細工のテーブルがノードとディスクに適切に分散されているかどうかを確認し、データ分散の欠陥が原因ではなくデータ処理のスキューが発生していないかどうかを確認します。

1
Tagar