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

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