Hadoop 企业级优化

本文探讨了MapReduce在企业应用中运行慢的原因,包括硬件限制和I/O问题,并提出了从数据输入、map和reduce阶段、I/O传输、数据倾斜和参数配置等多个角度进行优化的方法,还详细介绍了HDFS小文件的优化策略,如使用Hadoop Archive和CombineTextInputFormat。
摘要由CSDN通过智能技术生成

一、MapReduce跑得慢的原因

MapReduce的瓶颈有一下两点:

1、计算机硬件方面

CPU、内存、网络、硬盘等。

2、I/O方面

1、数据倾斜的问题

2、map和reduce设置的个数不合理

3、spill溢写设置的不合理,导致溢写个数过多

4、merge归并文件个数设置不合理,导致归并个数过多

5、map运行的时间过长,导致reduce等待时间太久

6、小文件太多

7、大量的不可分块的超大文件

二、MapReduce的优化方法

MapReduce的优化方法主要从六个方面考虑:数据输入、map阶段、reduce阶段、I/O传输、数据倾斜和系统参数配置。

1、数据输入

a、小文件合并:在执行mr任务前,将大量小文件数据进行合并处理,如果大量小文件输入会导致map任务装载次数增大,map每次装载是很耗时的,所以导致mr运行慢。

b、使用CombineTextInputFormat作为输入,来解决大量小文件的问题。

2、map阶段

a、减少spill(溢写)次数:通过设置 io.sort.mb 及 sort.spill.percent来增大触发spill的内存上限值,从而spill溢写的次数,减少磁盘I/O。

b、减少merge(合并)次数:通过设置 io.sort.factor 参数来增大merge文件上限值,减少merge合并文件的次数,从而增加mr的执行效率。

c、在map之后,在不影响业务的情况下,可以使用combine处理,从而减少I/O传输。

3、reduce阶段

a、合理设置map

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值