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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章