MapReduce:Job性能调优总结
是時候把去年早期MapReduce調優工作的結果放出來了,丟在Google Doc里太長時間,都落了一身的灰
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命令
*********************************
橙色: 正常的調優點,試驗后有正常的反應
紅色: 不可理喻的地方,與正常的想法相違背
黃色: 可有可無的地方,只是試驗了,不推薦使用
調優是基于Hadoop 0.21版本。
轉載于:https://www.cnblogs.com/captain_ccc/articles/4107807.html
總結
以上是生活随笔為你收集整理的MapReduce:Job性能调优总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学习笔记之23-typedef
- 下一篇: 滑动cell的时候执行动画效果