首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

reduce的数额到底和哪些因素有关

2012-07-24 
reduce的数目到底和哪些因素有关??1、我们知道map的数量和文件数、文件大小、块大小、以及split大小有关,而red

reduce的数目到底和哪些因素有关

?

?

1、我们知道map的数量和文件数、文件大小、块大小、以及split大小有关,而reduce的数量跟哪些因素有关呢?

?设置mapred.tasktracker.reduce.tasks.maximum的大小可以决定单个tasktracker一次性启动reduce的数目,但是不能决定总的reduce数目。

? conf.setNumReduceTasks(4);JobConf对象的这个方法可以用来设定总的reduce的数目,看下Job Counters的统计:

?

?

  11/03/25 17:03:41 INFO mapreduce.Job: Task Id : attempt_201103241018_0023_m_000000_1, Status : FAILEDjava.io.IOException: Illegal partition for 20110116 (3)at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.collect(MapTask.java:900)at org.apache.hadoop.mapred.MapTask$OldOutputCollector.collect(MapTask.java:508)at com.alipay.dw.test.KpiMapper.map(Unknown Source)at com.alipay.dw.test.KpiMapper.map(Unknown Source)at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54)at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:397)at org.apache.hadoop.mapred.MapTask.run(MapTask.java:330)at org.apache.hadoop.mapred.Child$4.run(Child.java:217)at java.security.AccessController.doPrivileged(Native Method)at javax.security.auth.Subject.doAs(Subject.java:396)at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:742)at org.apache.hadoop.mapred.Child.main(Child.java:211) 

?某些key没有找到所对应的reduce去处。原因是只启动了a个reduce。
?
?? b、当setNumReduceTasks( int a)里 a设置大于Partitioner返回不同值的个数b的话,同样会启动a个reduce,但是只有b个redurce上会得到数据。启动的其他的a-b个reduce浪费了。

?

?? c、理想状况是a=b,这样可以合理利用资源,负载更均衡。

.

?

热点排行