BBBBB

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 实战》--机械工业出版社

posted @ 2013-03-10 17:42  如是然  阅读(3077)  评论(0编辑  收藏  举报