2

2 ノードの Hadoop (1 つはマスター/スレーブ、もう 1 つはスレーブ) のセットアップと、サイズがそれぞれ 1GB の 4 つの入力ファイルがあります。dfs.replicate を 2 に設定すると、データ全体が理解できる両方のノードにコピーされます。しかし、私の質問は、単一ノードのセットアップよりもパフォーマンスの向上 (ほぼ 2 倍) を確認するにはどうすればよいかということです。 2 つのマッパーからレデューサーへの入力のチャネリングのオーバーヘッド。

また、レプリケーションを 1 に設定すると、データ全体がマスター ノードにのみ存在します。これは、イーサネットのオーバーヘッドを回避するためにも理解できます。しかし、この場合でも、単一ノードのセットアップと比較してパフォーマンスの向上が見られますが、これは混乱を招きます。map-reduce はローカル データ セットで実行されるため、このシナリオは基本的に、1 つの map-reduce プログラムをマスターで実行する単一ノードのセットアップと似ているはずです。データ セット全体のノード ??

誰かが私がここで欠けているものを理解するのを手伝ってくれますか???

ありがとうパワン

4

1 に答える 1

2

パワン、

2 つのノードの場合、map reduce ジョブはデータセット全体では実行されません。MapReduce は、構成に基づいてサイズが 64 MB 以上になる HDFS ブロックで動作します。1 GB がブロックに分割され、クラスター ノードに分散されます。これらのブロックの一部はノード 1 で処理され、他のブロックはノード 2 で処理されますが、重複はありません。レプリケーション係数は、データの可用性とノード障害に対する耐性を高めるだけです。タスクが重複することはありません。

その結果、処理の観点から、データはノード 1 とノード 2 の間で分割され、処理されます。つまり、処理能力を十分かつ適切に活用していれば、理論的には速度が 2 倍になるということです。

乾杯のぼろ

于 2013-04-17T11:53:01.100 に答える