hadoop的企业优化

1. Mapreduce

1. 计算机性能
CPU、内存、磁盘、网络
2. IO操作优化
(1)数据倾斜
(2)Map和Reduce数设置不合理
(3)Map运行时间太长,导致reduce等待时间过久
(4)小文件过多
(5)大量的不可分块的超大文件
(6)Spill溢出次数过多
(7)Merge次数过多

2. Mapreduce优化的方法

数据输入(小文件问题):
1. 合并小文件
2. 使用CombinerTextInputFormat作为输入
3. 使用可压缩的格式:bzip,lzo
Map阶段:
1. 减少溢写次数:调整io.sort.mb(shuffle的环形缓存区大小,增大触发spill的内存上限)及sort.spill.percent(增大溢写)参数值
2. 减少合并次数:调整io.sort.factor参数,(排序文件时一次合并的流数),将其调整的大些
3. 在Map之后,可以进行Combine处理
Reduce阶段:
1. 合理设置map和reduce的数目
2. Map运行到一定程度后,Reduce开始拉取map的结果到reduce端
3. 不使用Reduce
4. 合理设置reduce端的buffer:使Buffer中的一部分数据可以直接输送到Reduce中,减少IO开销:mapreduce.reduce.input.buffer.percent,
默认为0.0,当值大于0的时候,会保留指定比例的内存读Buffer中的数据直接拿给Reduce使用。
IO传输:
1. 数据压缩,支持LZO和Snappy压缩
2. 使用SequenceFile二进制文件,SequenceFile也支持压缩
数据倾斜问题:
1. 自定义分区

2. 常用的调优参数:

posted @ 2022-07-29 11:12  jsqup  阅读(15)  评论(0编辑  收藏  举报