hadoop mapreduce 優化


mapreduce程序效率的瓶頸在於兩點:

  1:計算機性能

  2:I/O操作優化

優化無非包括時間性能和空間性能兩個方面,存在一下常見的優化策略:

  1:輸入的文件盡量采用大文件

    眾多的小文件會導致map數量眾多,每個新的map任務都會造成一些性能的損失。所以可以將一些小文件在進行mapreduce操作前進行一些預處理,整合成大文件,或者直接采用ConbinFileInputFormat來作為輸入方式,此時hadoop會考慮節點和集群的位置信息,已決定將哪些文件打包到同一個單元之中。

  2:合理分配map和reduce任務的數量

    通過屬性mapred.tasktracker.map.tasks.maximum和mapred.tasktracker.reduce.tasks.maximum分別可以配置單個節點上map任務和reduce任務的最大數量。

  3:壓縮中間數據,減少I/O

  4:在map后先進行combine處理,減少I/O

 

參考資料:《Hadoop 實戰》--機械工業出版社


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM