2012-05-04 6 views
0

マッパーの数を増やしてレデューサーの数を減らすと、実行中のジョブのパフォーマンス(増減)に違いはありますか?パフォーマンスを向上させるために使用されるインスタンスの数に応じて、ハープのマッパーとレデューサーを増やす方法はありますか?

マッパーとレデューサーの数を設定する方法は?私はこれについて知りませんでしたなぜこの設定で遊んだことがありません。私はhadoopを知っていますが、私はハイブをたくさん使っているので、コードを持っています。

また、マッパーとレデューサーの数を増やしたい場合は、それをどのように設定するか、どのような値を設定するかを設定します。それはインスタンスの数に依存していますか?

私に返信してください私はこれを試して、パフォーマンスをチェックしたいと思います。おかげさまで

答えて

3

マッパーの数を変更する - 結果に影響を及ぼさない純粋な最適化です。クラスタを完全に利用するには、番号を設定する必要があります(専用の場合)。コア数に等しいノードあたりのマッパーの数を試してください。 CPU使用率を調べ、CPU使用率がほぼ満杯になるか、システムがスワッピングを開始するまで数を増やしてください。十分なメモリがない場合は、コアを少なくしてコアを必要としないことがあります。
特定の数の減速機(1など)が必要な場合、減速機の数は結果に影響します -
を設定します。任意の数の減速機の結果を処理できる場合は、マッパーと同じ最適化を行います。
理論的には、このチューニングプロセス中にIOバウンドになる可能性があります。タスク数をチューニングするときにも注意してください。マッパー/レデューサー数の増加にもかかわらず、CPU使用率を低くして認識することができます。

+0

おかげでデビッドあなたの答えのために。しかし、マッパーとレデューサーを設定する方法(それを設定するコマンドは何ですか?)を知りたいです。 –

+0

最も簡単な方法は、Mapred-site.xmlのmapred.tasktracker.map.tasks.maximumとmapred.tasktracker.reduce.tasks.maximumというプロパティを設定することです –

4

ブロックサイズと分割サイズに基づいてマッパーの数を増やすことができます。最も簡単な方法の一つは、下記に示すように、分割サイズを減少させることである。

Configuration conf= new Cofiguration(); 
//set the value that increases your number of splits. 
conf.set("mapred.max.split.size", "1020"); 
Job job = new Job(conf, "My job name"); 
0

私はmapred.max.split.sizeを変更することによって、@AnimeshラジJhaにからの提案を試してみましたが、顕著なパフォーマンスの向上を持っています。

0

私はhadoop 2.2を使用していますが、最大入力分割サイズを設定する方法がわかりません この値を減らして、より多くのマッパーを作成します yarn-site.xmlを更新しようとしましたが確かに

機能しない、Hadoopの2.2 /糸はなしで、以下の設定を取ることはありません

<property> 
<name>mapreduce.input.fileinputformat.split.minsize</name> 
<value>1</value> 
</property> 
<property> 
<name>mapreduce.input.fileinputformat.split.maxsiz e</name> 
<value>16777216</value> 
</property> 

<property> 
<name>mapred.min.split.size</name> 
<value>1</value> 
</property> 
<property> 
<name>mapred.max.split.size</name> 
<value>16777216</value> 
</property> 

最高