目录
0 场景描述
1 问题分析
1.1 问题剖析
1.2 解决方案
2 小结
0 场景描述
实际业务中有些大量的null值或者一些无意义的数据参与到计算作业中,表中有大量的null值,如果表之间进行join操作,就会有shuffle产生,这样所有的null值都会被分配到一个reduce中,必然产生数据倾斜。
1 问题分析
1.1 问题剖析
疑问:NULL值和需要匹配的字段根本就匹配不上,为什么会进入到同一个reduce?
数据放到同一个reduce中的原因不是因为字段能不能join上,而是因为shuffle阶段的数据分发操作(数据路由算法决定的),因为join中的key要进行匹配,在mr中此时key需要被分发,只要key的hash结果是一样的,它们就会被拉到同一个reduce中,被分到