2017-01-26 10 views

答えて

1

NameNodeはブロックIDを割り当て、それをクライアントに渡します。クライアントはこのブロックIDを使用してDataNodeと通信し、ブロックにデータを書き込みます。

Apache JIRA HDFS-4645には、ブロックIDの割り当てに関する現在の設計が記載されています。特定の定数から始まる単調増加IDを使用します。このコードを知りたい場合は、Apache HadoopコードベースのBlockIdManagerクラスとSequentialBlockIdGeneratorクラスを参照してください。

+0

間違っている場合は私を修正してください。私の理解によると、クライアントはファイルをブロックに分割します。クライアントは、名前ノードにデータノードの可用性を得るように依頼し、これらのブロックをデータノードに書き込みます。書込み処理が完了しました。データノードはブロック情報をNameノードに提供します。名前ノードのみがメタデータを更新します。クライアントが実際にブロックを分割するときにブロックIDが生成されるこのプロセスでは、NameノードがDataノードによって更新されていない場合、 。 –

+0

新しいブロックをファイルに割り当てる必要があるときにクライアントが決定するが、NameNodeは常に新しいブロックIDを割り当てるための中心点になることは間違いありません。クライアントは、ブロックを割り当てるためにNameNodeへのRPC呼び出しを行います。次に、NameNodeはブロックIDを生成し、それをメタデータに保存し、ブロックIDをクライアントに返します。次に、クライアントはDataNodeと通信するときにそのブロックIDを使用します。 –

+1

クライアントが、そのブロックのブロックIDをクライアントに送信するブロックにデータノードを割り当てるために名前ノードを要求しているときは、 –

関連する問題