4

それで、Hadoop: The Definitive Guide を読んでいました。このページの一文が私を混乱させました。というわけで、それぞれの文章をイメージして描いてみました。

HDFS フェデレーション

文は言う、

フェデレーションの下で、各ネームノードは、ネームスペースのメタデータで構成されるネームスペース ボリューム (黒い四角はネームスペース ボリュームを表す) と、ファイルのすべてのブロックを含むブロック プール(濃い灰色の四角形で表す) を管理します。名前空間。名前空間ボリュームは互いに独立しています (イメージでは、名前ノードごとに個別であり、共有されていません)。つまり、名前ノードは互いに通信しません。さらに、1 つの名前ノードの障害は、管理されている名前空間の可用性に影響しません。他の名前ノードによって。ただし、ブロック プール ストレージは分割されていないため (したがって、イメージ内のすべてのストレージ間で共有されます)、データノードはクラスター内の各ネームノードに登録されます。(再びすべてのネームノードと共有されます)複数のブロックプールからのブロックを保存します(私の質問は、どうすれば複数のブロックプールを持つことができるのでしょうか?段落全体で、すべてのネームノードが各ブロックを指すメタデータを持ち、したがって共有することを要約していませんか?ブロックプール?)

私はめちゃくちゃ混乱しています!

4

3 に答える 3

1

「ブロックプール」の長方形に関する表現は不正確です。「ブロックプール」と読む必要があります。

別の表現を見る価値があると思います:

フェデレーション

したがって、基本的に各ブロックプールは互いに独立して管理され、それぞれが単一のネームスペースに属するブロックのセットです。Namenode は互いに会話しませんが、これは理にかなっています。

私が読んだことによると、これの背後にある理由は、これにより、名前空間が他の名前空間との調整を必要とせずに、新しいブロックのブロック ID を生成できるようになるためです。namenode に障害が発生しても、datanode がクラスター内の他の namenode にサービスを提供できなくなることはありません。

于 2013-01-22T16:21:25.300 に答える
1

わかりやすくするために、上の図の NameNode NN-n がダウンした場合、Pool-n も使用できなくなります。そのため、Namenone NN-n が復元されるまで、Pool-n に保持されているデータノード ブロックにはアクセスできません。またはそれ以外の場合

于 2013-11-17T01:47:11.957 に答える