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