MapReduce跑的慢的原因
MapReduce程序效率的瓶颈在于两点:
1、计算机性能
cpu、内存、网络、磁盘健康
2、I/O操作优化
(1)、数据倾斜
(2)、Map和Reduce数设置不合理
(3)、Map运行时间太长,导致Reduce等待时间太久
(4)、小文件过多
(5)、大量的不可切分的超大文件
(6)、溢写次数过多
(7)、Mager次数过多等
MapRedeuce的优化方法
MapReduce的优化方法主要从六个方面考虑:数据输入、Map阶段、Reduce阶段、I/O传输、数据倾斜问题和常见的调优参数。
1、数据输入:
(1)、合并小文件
(2)、采用ConbineTextFileInputFormat来作为输入,解决输入端大量小文件的问题。
2、Reduce阶段
(1)、合理设置Map和Reduce的数
(2)、设置Map和Reduce共存
(3)、规避使用Reduce
3、I/O传输
(1)、采用数据压缩的方式
(2)、使用SequenceFile二进制文件
4、数据倾斜
(1)、抽样和范围分区
(2)、自定义分区
(3)、使用Conbine
(4)、采用Map Join,尽量使用Reduce Join
5、Map阶段
((1)、减少溢写次数
(2)、减少合并次数
(3)、在不影响业务逻辑的情况下,先使用Conbine处理
6、调优参数
略
HDFS小文件的优化方法
优化方式有以下几种方面:
1、在数据的采集阶段,将小文件和小批数据合成大文件再上传HDFS
2、在业务处理之前,在HDFS上用MapReduce程序对小文件合并
3、在MapReduce处理时,可采用ConbineTextInputFormat提高效率