数据倾斜
1 map阶段
【倾斜原因】
数据源在物理阶段分布不均匀,导致个别物理节点需处理绝大多数数据。
【解决方案】
前期将数据均匀分布到各物理节点。
2 join/reduce阶段
【倾斜原因】
有些key占比很大,shuffle时极度耗时。
【解决方案】
1)大小表join时,将小表直接collect,与大表在map阶段join,也就是用map join代替reduce join。
2)异常或null值,进行随机发射。
3)针对热点数据,进行单独处理,之后union非热点数据。