首页 > 解决方案 > 由于火花偏斜,胶水作业失败

问题描述

我的 Spark 作业中有一个偏斜问题,其中两个分区有十亿多条记录,而其他分区有数百万条记录。如果我删除具有 20 亿条记录的分区,则作业运行良好,但会因它们而失败。除了加盐还有其他方法可以帮助吗?

数据

|合同 | 计数|


|一个| 2205181264|

|B| 2094348180|

|C| 448206125|

|D| 410970798|

如果我删除合同 A 和 B,作业将毫无问题地运行。如果我添加合约 A 和 B,加盐因子为 100 或 500,我会收到错误:大小超过 Integer.MAX_VALUE,这是 shuffle 块大小大于 2gb 时的错误。以下是我使用的其他 spark 配置:

--spark.yarn.executor.memoryOverhead=4096

--conf spark.yarn.executor.memory=8g

--conf spark.sql.shuffle.partitions=1600

--conf spark.yarn.driver.memoryOverhead=6g

标签: apache-spark

解决方案


推荐阅读