数据倾斜的原因,以及解决方法

数据倾斜的原因,以及解决方法:


数据倾斜是什么:

数据倾斜就是大量的相同key被partition分配到一个分区里,造成了"一个人累死,其他人闲死"的情况,这违背了并行计算的初衷,整体的效率是十分低下的。

数据倾斜产生的原因:

  • key分布不均匀
  • 业务数据本身的特性
  • 建表时考虑不周
  • 某些SQL语句本身就有数据倾斜

数据倾斜的解决方案:

  • 使用 HIVE ETL 预处理数据
  • 过滤少量导致数据倾斜的 key
  • 提高 shuffle 操作的并行度
  • reduce join 转为 map join 
  • 两阶段聚合(局部聚合+全局聚合)
  • 采样倾斜 key 并分拆 join 操作
  • 使用随机前缀和扩容 RDD 进行 join
  • 多种方案组合使用

posted @ 2022-12-04 10:35  不想emo的小李  阅读(722)  评论(0)    收藏  举报