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. 常用的调优参数:
本文来自博客园,作者:jsqup,转载请注明原文链接:https://www.cnblogs.com/jsqup/p/16531383.html