当我的 spark 作业失败时,我收到以下错误 **“org.apache.spark.shuffle.FetchFailedException:维护要获取的 block 数据的相对远程执行程序(Id:21)已死。” **
我的 spark 作业概览
输入大小约为 35 GB
我已经广播将所有较小的表与母表连接成一个 dataframe1
,然后我在每个大表和 dataframe1
上加盐,然后再与 连接dataframe1
(左表)。
使用的配置文件:
@configure(profile=[
'EXECUTOR_MEMORY_LARGE',
'NUM_EXECUTORS_32',
'DRIVER_MEMORY_LARGE',
'SHUFFLE_PARTITIONS_LARGE'
])
使用上述方法和配置文件,我能够将运行时间减少 50%,但我仍然遇到Shuffle Stage Failing Due to Executor Loss 问题。
有什么办法可以解决这个问题吗?
最佳答案
您可以尝试多种方法:
AQE 的一些引用资料: https://learn.microsoft.com/en-us/azure/databricks/spark/latest/spark-sql/aqe https://spark.apache.org/docs/latest/sql-performance-tuning.html#adaptive-query-execution
https://stackoverflow.com/questions/70863540/
相关文章:
c++ - 用方括号 [] 初始化 std::vector
visual-studio - 如何在 D 盘中完全安装 Visual Studio?
python - 给定四边形的角,使用 matplotlib 在 3d 中绘制阴影四边形
python - Kubernetespodoperator如何使用cmds或者cmds和argum
python - PyTorch 中的 DataLoader 和 DataLoader2 有什么不同
java - Lombok 继承 : how to set default value for fi