0

データがローカルでない場合、タスクトラッカーはどのようにしてマップタスクのデータを別のノードから取得しますか?

データを含むマシンのデータノードと直接通信しますか、それとも他のデータノードと直接通信する独自​​のデータノードと通信しますか?

ありがとう、Suresh。

4

1 に答える 1

0

タスク トラッカー自体はデータを取得しません。JVM を起動 (または再利用) して Map タスクを実行します。マップ タスクは、DFS ファイル システム クライアントを使用して、処理するファイルのブロックの場所の名前ノードを照会します。次に、クライアントはデータ ノードに接続し、そこでブロックの 1 つが複製され、実際にファイルの内容を (ストリームとして) 取得します。

さらに深く掘り下げたい場合は、ソースを参照して理解を深めてください。DFSClient と内部クラス DFSInputStream (特に bestNode メソッド) を確認してください。

于 2012-06-02T00:56:43.413 に答える