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 @   jsqup  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示