在一行

时间:2016-08-10 03:34:50

标签: apache-spark yarn

我正在使用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 

1 个答案:

答案 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 

但是,如果有其他解决方案,您的答案非常受欢迎。