2016-11-30 10 views
0
  1. 64 MBブロックがノードAにあり、2つの他のノード(B、C)に複製され、map-reduceプログラムの入力分割サイズが64 MBであるとしますちょうどノードAの場所がありますか?あるいは、それは3つのノードA、B、Cのすべての場所を持つでしょうか?
  2. データは3つのノードすべてに対してローカルなので、フレームワークが特定のノードで実行するマップタスクを決定(選択)する方法は?
  3. 入力分割サイズがブロックサイズよりも大きいか小さいかはどのように処理されますか?
+1

[Hadoop入力分割サイズとブロックサイズ]の複製が可能です(http://stackoverflow.com/questions/17727468/hadoop-input-split-size-vs-block-size) –

答えて

0

ブロックがどこにあるかを知ることができます。分割が1ブロックと正確に等しい場合、Hadoopは同じノード上でマップタスクを実行しようとし、「データローカリティ」原則を適用し、必要なネットワーク転送をすべて保存します。

A、B、Cがすべて使用可能な場合、マップタスクはクライアントに最も近いノードで実行されます。ノードAが利用可能でない場合、ノードAはクライアントに最も近いノードに応じてBまたはC上で動作する。

A、B、Cがすべて利用できない場合、HadoopはA、B、またはCのどのノードがクライアントに最も近いかを調べ、Aと同じラック上の空きノードを選択します転送はより速い)。ラック全体がビジーであれば、別のラックとノードを選択して分割を処理するしかありません。分割はノードに一時的にコピーされ、処理後に一時的な場所から削除されます。

ただし、入力分割がブロックサイズより大きい場合、全く同じ原則が適用されます。唯一の違いは、Hadoopフレームワークが「分割+ブロック2から数行」をノードに渡して処理することです。

関連する問題