我正在使用apache-spark,scala,我在yarn-cluster上运行我的工作。
输入文件包含3gb数据,文件格式为avro-parquet,架构包含ff字段:
{
name: String,
value: Array[String]
}
问题是,我的火花作业从一开始就顺利运行,然后在最后一个分区倾斜('value'字段的数组长度约为2M +),然后我得到了ExecutorLostFailure错误。我的工作一直在努力,但最终仍然失败。
到目前为止,这是我的工作配置。我尝试将执行程序内存从1gb增加到4gb,但我仍然遇到错误:
--driver-memory 8192m
--executor-cores 1
--executor-memory 4096m
--num-executors 128
--conf spark.yarn.executor.memoryOverhead=1024
--conf spark.yarn.driver.memoryOverhead=2048
答案 0 :(得分:0)
已通过更新ff配置修复此问题:
--executor-memory 5G
--conf spark.yarn.executor.memoryOverhead=1250
我还添加了这些配置,因为我不会缓存/保留任何RDD并为我的用户对象留出更多空间:
--conf spark.storage.memoryFraction=0.01
--conf spark.shuffle.memoryFraction=0.1
但是,如果有其他解决方案,您的答案非常受欢迎。