0

指定されたブロック ID がどのデータ ノードに存在するかを調べるためのプログラム インターフェイスはありますか。つまり、fsImage を読み取り、この情報を返す機能です。

4

2 に答える 2

0

HDFS hadoopでblockNameからファイルを検索する方法と同様に、ブロックIDから(ファイル名のみで)情報を検索できるnamenodeへのパブリックインターフェイスはありません。

fsImageを開くことを確認できますが、ブロックをホストする実際の場所(DataNode)はこのファイルに保存されないため、ブロックIDからファイル名へのマッピングのみが提供されます。データノードはデータディレクトリをツリーウォークし、NameNodeにレポートします。何がブロックされているのか。

名前ノードにデバッガーをアタッチできれば、ブロックマップを調べることができるかもしれませんが、IDからファイル名へのマップがないため、O(n)操作になります。

于 2012-06-09T13:20:03.383 に答える
0

私が知っている大雑把な方法の 1 つは、dfs データ ディレクトリで blockName を持つファイルを探すことです。ただし、これは O(n) ソリューションであり、これには O(1) ソリューションがあると確信しています。

于 2012-06-09T05:57:18.167 に答える