天天看點

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 實戰》--機械工業出版社

hadoop mapreduce 優化