造成数据倾斜的原因主要有2种:在map端读取不可分割的大文件、处理大量相同的key
解决办法一般有以下几种:
1、对于空值引发的数据倾斜
(1)在sql语句中单独处理空值的数据,最后union all
(2)将空值设置为随机数,这样就会均匀的分不到reduce中
2、在多表关联时,关联字段数据类型不同造成的数据倾斜---将数据类型转化为相同再进行关联
3、表连接引发的数据倾斜----map端完成join
造成数据倾斜的原因主要有2种:在map端读取不可分割的大文件、处理大量相同的key
解决办法一般有以下几种:
1、对于空值引发的数据倾斜
(1)在sql语句中单独处理空值的数据,最后union all
(2)将空值设置为随机数,这样就会均匀的分不到reduce中
2、在多表关联时,关联字段数据类型不同造成的数据倾斜---将数据类型转化为相同再进行关联
3、表连接引发的数据倾斜----map端完成join