Mpa阶段
Reduce阶段
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAnYldHL0FWby9mZvwFN4ETMfdHLkVGepZ2XtxSZ6l2clJ3LcV2Zh1Wa9M3clN2byBXLzN3btgHL9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsQTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SNxYDO4MWMkJDMhJGOxIjNzYzXyADNxUTMyAzLcFTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
数据倾斜问题
1.数据侵袭呃——某一个区域的数据量要远远大于其他区域
数据大小倾斜——部分记录的大小远远小于平均值
2.如何收集倾斜数据
在reduce方法中加入记录map输出键的详细情况的功能
减少数据倾斜的方法
1.抽样和范围分区
可以通过对原始数据进行抽样得到的结果
2.自定义分区
基于输出键值的背景知识进行自定义分区。例如,如果map输出键的单词来源于一本书。且其中某几个专业词汇较多。那么就可以自动分区将这些专业词汇发送给固定的一部分reduce实例。而将其他的都发送给剩余的reduce实例
3.Combine
使用Combine可以大量地减少数据倾斜。在可能的情况下,combine的目的就是提前聚合并精简数据