MapReduceの実行中のプロセス分析

ここに画像を挿入説明
MapReduceの算出処理は、二つの工程に分けられる:ステージをマップし、位相低減
データ算出時に1を、データが第1のオブジェクトDistributeInputStreamによって取得されます

2.次に、データのブロックは、特定のオフセット、128MBのスライスのデフォルトサイズ、およびマップ・セットに対する各スライス相当し、そのための単語のカウントは、キーマップが設定されている各オフセットによってスライスされますデフォルト値であるデータの量は、1であります

3.マップは非常に同じキー値にソートされたデータを配置することによって一緒にすることを、他の作業のノードにワークフロー同様、迅速にソート次にです

4.その後の作業マップの実行が80%を完了したかどうかを判断するために減らすすでにデータに基づいて取得するために、HTTP経由でデータをソート:. MapReduceは、プリミティブからのデータを取得するためのタスクと濃縮を行うようになったの削減:「同じ」キーをキー値が呼び出しがメソッドを削減し、設定され、このデータセットに対するこの方法を反復するが計算されます。データセットを取得する際、同一のキー値と関連して地図データは、最初であろう削減、が終了していない場合、そのタスクを見つけるためにタスクをマップ(データの並列処理の他のノードのデータを取得するなど)を取得しますマップノードが完了し実行するために他のタスクを待機した後、リアルタイムコンピューティング、マージソート、、、減らす計算時間を低減する、同じキー値が同じ統計(ワード数)を計算し、次に完了データを計算さの計算ストレージのためのHDFSへの出力結果。

Reducceは、http経由でパーティションの数に応じてデータマップの出力ファイルを得ることです。HTTPエンドは、その減速マップサービスのHTTPリクエストを持っています。スレッドの最大数は、HTTPサービスはmaperduceを持っています。shuffle.Max.threads属性。この属性は、スレッドの最大数は、カーネルスレッド数の二倍であることを示しており、複数のタスクを実行しているノードマネージャは良いがあるかもしれないので、デフォルト値は0で、むしろマップタスクのスレッドの数よりも、スレッドノードマネージャの数を指定します。

マップの出力ファイルは、ローカルディスク上に配置され、タスクは、マップタスクのクラスタから指定されたタスクパーティションマップデータを取得する必要性を減らします。異なる時間で完了し、複数のマップタスクがあるかもしれません。マップタスクの完了、マップタスクからデータを取得する指定されたパーティションを減らすには、高効率のために、マルチスレッドアプローチを取得するパーティション指定されたデータを削減するたび。デフォルトのスレッド数は5で、設定ファイルで指定することができます。
書かれたオーバーフローファイル:大きなメモリバッファサイズがしきい値(mapreduce.reduce.shuffle.merge.percent)に達するか、またはマップファイルの出力が閾値に達した場合、マップタスクからパーティションの開発が完了したことを減少させるためにファイルをコピーする場合、(のMapReduce。 reduce.merge.inmem.threshold)そのファイルはディスクのオーバーフローに書き込まれます。あなたが指定した場合コンバイナ合併はここコンバイナとなります

一度減らす統合フェーズに入っ軽減50個のファイル、10(mapreduce.task.io.sort.factorのマージ要因が存在する場合、問題はその後、デフォルトは10何回合併されている、すべてのパーティションマップからデータをコピー)、5つの中間出力ファイルはもはや直接組み込まれて得ないことが必要です。
データは、混合出力の形で一般的にメモリとディスクを低減します。

公開された133元の記事 ウォン称賛53 ビュー20000 +

おすすめ

転載: blog.csdn.net/weixin_43599377/article/details/103466267