MapReduceの(3)のHadoopのビッグデータ技術 - MapReduceのワークフロー

3.2 MapReduceのワークフロー

1。フロー図:

ここに画像を挿入説明
ここに画像を挿入説明

2。詳細なプロセス

上記プロセスは、以下の、特に詳細な処理をシャッフル、ステップ16の端部にステップ7から最も包括的なMapReduceの全体のワークフロープロセスでのみ開始シャッフル
へ出力するKV方法)MapTaskは(我々のマップを収集し、1)。メモリバッファ
複数のファイルがオーバーフローすることができ、メモリバッファオーバーフローローカルディスクファイルから連続的に)2を
複数の予備ファイルが大きい予備ファイルにマージする)3を
オーバーフロープロセスの統合の過程で)4と、呼び出す必要パーティショナパーティションとキーをソートする
。5)それらReduceTaskパーティション数に応じて、それぞれのパーティションに対応するデータを取得するMapTaskマシン結果
6)ReduceTaskは、これらのファイルはReduceTaskあろう、異なるMapTaskからの結果ファイルの同一のパーティションに移動します次いで、(マージソート)マージ
結合ファイルより大きい7の後)に、シャッフル処理(キーグループ、ユーザー定義ファイルからの呼び出しを(低減するために、1つずつ除去バックプロセスReduceTask論理演算に、上で)法)

3。ご注意ください

バッファサイズは、原則的に、MapReduceのプログラムの実施の効率に影響を与えますシャッフル、バッファが大きいほど、ディスクIOの数が少ない、より速く行います。
バッファ・サイズ・パラメータは、パラメータを調整することができます:デフォルトの100Mをio.sort.mb。

4。ソース解決プロセス
context.write(k, NullWritable.get());
output.write(key, value);
collector.collect(key, value,partitioner.getPartition(key, value, partitions));
	HashPartitioner();
collect()
	close()
	collect.flush()
sortAndSpill()
	sort()   QuickSort
mergeParts();
collector.close();
公開された37元の記事 ウォン称賛7 ビュー1169

おすすめ

転載: blog.csdn.net/zy13765287861/article/details/104748512