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

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


数据倾斜是什么:

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

数据倾斜产生的原因:

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

数据倾斜的解决方案:

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

posted @   不想emo的小李  阅读(660)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示