`
longzhun
  • 浏览: 360027 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MapReduce:Job性能调优总结

 
阅读更多

Benchmark: 对1G数据做wordcount 
部分内容: 
********************************* 
硬件级别 
提高磁盘IO的性能 
noatime  我为两台slaves server设置了noatime. vi /etc/fstab.map task的平均执行时间减少两秒,这影响硬盘IO的性能,shuffle的时间也相应地减少了1分钟,不影响reduce的执行时间 



client端设置 
map与reduce task数量 
map task的数量由split的数量决定,split的数据越小,每个map task执行的时间就越短,但相应地, job的执行时间就拉长了, 因为内部调度的时间更长了 
benchmark: 
之前是67个map task,平均执行时间是16秒, job完成时间接近7分钟 
后来map task变成265个, 平均每个map task执行8秒,但job完成时间差不多12分钟 

reduce task的数量由client来设置 
我测试的结果client设置result task略大于或等于集群reduce slot, 当然这是整个集群只有一个job在执行的情况下,当有多个job执行时, 网上的建议是少于集群reduce slots总量 
集群reduce slots数量是4,我设置reduce数量成8的时候,每个reduce执行的很快,shuffle过程也短,最终job完成时间差不多是7分钟,而设置为2时,shuffle时间很长,job完成时间为12分钟.当我再设置为4个reduce task时, 执行时间差不多8分钟 

后来我又做了三个长时间job并发运行的测试,结果显示纵使有很多个map slot在运行, 两台slaves的CPU与内存利用率不是很离谱, 但不同的场景应该有不同的设置,主要还是根据slave的负载来决定. 查看slave机器的负载可使用top命令 
********************************* 

橙色: 正常的调优点,试验后有正常的反应 
红色: 不可理喻的地方,与正常的想法相违背 
黄色: 可有可无的地方,只是试验了,不推荐使用 

 

详见附件

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics