hadoop解决数据倾斜的方法

1,如果预聚合不影响最终结果,可以使用conbine,提前对数据聚合,减少数据量。

2,使用2次mr的方式。第一次mr,在map输出是给key加上一个前缀,则可以把相同的key分配到不同的reduce聚合,可以实现同一个key数据量大的问题;第二次mr对把第一次mr输出的数据的key去掉前缀,在聚合。

3,增加reduce个数,提示并行度。

4,自定义分区,自定义散列函数,把数据均匀分配到不同reduce。

相关推荐