2016-03-25 14 views
0

を減らして、私は専門家がこのシナリオに答える知っていただきたいと思います:増加または減少は、フレームワーク

言って、私は、最大で64メガバイトの3つのブロックで150メガバイトのファイルを持っています。デフォルトでは、3つのマッパーがマップリダクションを開始します。

マッパーの数を増減したい場合は、コマンドとは何ですか?

処理の途中で増やそうとすると、処理するブロックが3つしかないので何が起こりますか。私がプロセスを開始するとすぐに、それは新しい数のマッパーか、それがどのように振る舞うでしょうか?

専門家はこのコンセプトを軽視できますか?

これはあなたのマップの数は通常、入力ファイルのDFSブロックの数によって駆動される地図

番号を助けるべきであるあなたに

答えて

0

ありがとうございます。しかし、これによって人々はDFSのブロックサイズを調整してマップの数を調整します。マップの適切なレベルの並列処理は、約10〜100マップ/ノードのように見えますが、非常にCPUの軽いマップ作業では300程度かかります。タスクの設定にはしばらく時間がかかります。したがって、マップの実行に最低1分かかる場合は最適です。

実際にマップの数を制御するのは微妙です。 mapred.map.tasksパラメータは、マップ数に対するInputFormatのヒントです。 InputFormatのデフォルトの動作は、合計バイト数を適切な数のフラグメントに分割することです。ただし、デフォルトの場合、入力ファイルのDFSブロックサイズは入力分割の上限として扱われます。分割サイズの下限は、mapred.min.split.sizeで設定できます。したがって、10TBの入力データがあり、128MBのDFSブロックがあると、mapred.map.tasksがさらに大きくならない限り、82kのマップになります。最終的にInputFormatはマップの数を決定します。

マップタスクの数は、JobConfのconf.setNumMapTasks(int num)を使用して手動で増やすこともできます。これはマップタスクの数を増やすために使用できますが、Hadoopが入力データを分割して決定する数値よりも下の数値を設定しません。

詳細で - https://wiki.apache.org/hadoop/HowManyMapsAndReduces

私はあなたがジョブの実行中にそれを行うことができるかどうかわかりません。これは、ジョブ起動前に処理する必要があります

+0

ここで関連する議論 - http://stackoverflow.com/questions/6885441/setting-the-number-of-map-tasks-and-reduce-tasks – Anirudh

関連する問題