资讯动态

数据倾斜处理方法

发布时间:2026/10/28 2:02:39 来源:尧图企业网站定制
目录hive预处理过滤少数key提高shuffle并行度两阶段聚合reduce join - map join拆分倾斜key join扩容RDD joinhive预处理条件hive表导致的业务需要频繁使用该表进行操作方法提前使用Hive ETL对数据进行预聚合将数据倾斜的操作提前到了hive ETL中避免spark发生数据倾斜适合一次操作多次使用过滤少数key条件少数key导致且可以不需要该key方法直接过滤掉该key过滤导致数据倾斜的key避免数据倾斜。提高shuffle并行度条件是task少导致多个key打到一个task上造成的数据倾斜方法提高shuffle read task的数量让每个task处理更少的key如果是一个key数据量过多导致的则不能用该方法。两阶段聚合条件用于聚合类算子方法1. 先给key打上n以内的随机数 2. 对数据进行聚合操作聚部聚和3. 去掉前缀再进行全局聚合聚合类shuffle导致的数据倾斜不能用于join类reduce join - map join条件其中一个表是小表方法将小表广播广播小表避免shuffle操作拆分倾斜key join条件导致数据倾斜的key数量较少一个表数据倾斜另一个表正常方法将这些数据量大的key筛选出来拆分成新的RDD给每个key打n以内的随机数前缀join的另一个表筛选出这几个key打上前缀扩充成n份将这两个RDD进行join就打散到多个task进行join了另外两个普通RDD进行照常join最后将两个join结果合并起来union扩容RDD join条件同上并且是多个key方法同上但是是不进行拆分的因为导致的key太多对所有数据进行加盐打散操作该方法对内存的要求高因为是对另一个RDD整个进行扩充

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑