关于Mapreduce的优化

MapReduce性能的瓶颈:

作为分布式系统程序,MapReduce的瓶颈主要表现在两个方面:
1.计算机性能:包括CPU、内存、磁盘健康、网络
2.I/O操作优化:数据倾斜、Map和Reduce数设置不合理等
所以优化方法主要从六个方面考虑:数据输入、Map阶段、Reduce阶段、I/O传输、数据倾斜问题和调参。


数据输入:

1.合并小文件:大量的小文件会产生大量的装载任务,增大Map任务装载次数。
2.采用CombineTextInputFormat来作为输入,解决输入端大量小文件场景。


Map阶段:

1.减少溢写(Spill)次数
2,减少合并次数
3.在Map之后,不影响业务逻辑前提下,先进行combine处理,减少I/O。


Reduce阶段:

1.合理设置Map和Reduce数
2.设置Map、Reduce共存
3.规避使用Reduce


I/O传输:

1.采用数据压缩的方式,减少网络I/O的时间
2.使用SequenceFile二进制文件


数据倾斜问题:

分为数据频率倾斜以及数据大小倾斜,减少方法:
1.抽样和范围分区
2.自定义分区
3.Combine:大量减少数据倾斜,通过聚合合并精简数据
4.采用Map Join,尽量避免Reduce Join


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值