apache-spark - 由于火花偏斜,胶水作业失败
问题描述
我的 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
解决方案
推荐阅读
- silverstripe - CMS 路由(设置)的 SilverStripe 功能测试始终为 POST 请求返回 404
- xamarin.android - listview 项目空间 xamarin android
- php - 如何在一次 MySQL 数据库更新中做多个数学方程?
- multithreading - 尝试使用 vTaskList() 列出所有任务时出现硬故障
- visual-studio - 如何正确导入 Xamarin 项目?
- java - 使用 JMS ObjectMessage 时发生 ClassNotFound 异常
- json - 使用 Python 读取 JSON 文件时出错
- google-sheets - 在 Google 表格中填写缺失的日期
- build - CentOS 7.5 上的 REDHAWK 2.2.5 - 尝试将 rh.dsp 共享库添加到组件时出现构建错误
- java - 多行按钮文本忽略按钮边距的问题