【发布时间】:2017-08-20 16:59:26
【问题描述】:
我一直在寻找解决以下问题的方法。我正在使用 Scala 2.11.8 和 Spark 2.1.0。
Application application_1489191400413_3294 failed 1 times due to AM Container for appattempt_1489191400413_3294_000001 exited with exitCode: -104
For more detailed output, check application tracking page:http://ip-172-31-17-35.us-west-2.compute.internal:8088/cluster/app/application_1489191400413_3294Then, click on links to logs of each attempt.
Diagnostics: Container [pid=23372,containerID=container_1489191400413_3294_01_000001] is running beyond physical memory limits.
Current usage: 1.4 GB of 1.4 GB physical memory used; 3.5 GB of 6.9 GB virtual memory used. Killing container.
请注意,我分配的内容比此处错误报告的 1.4 GB 多得多。由于我没有看到我的执行程序失败,我从这个错误中读取的是驱动程序需要更多内存。但是,我的设置似乎没有传播。
我正在将作业参数设置为纱线,如下所示:
val conf = new SparkConf()
.setAppName(jobName)
.set("spark.hadoop.mapred.output.committer.class", "com.company.path.DirectOutputCommitter")
additionalSparkConfSettings.foreach { case (key, value) => conf.set(key, value) }
// this is the implicit that we pass around
implicit val sparkSession = SparkSession
.builder()
.appName(jobName)
.config(conf)
.getOrCreate()
additionalSparkConfSettings 中的内存配置参数使用以下 sn-p 设置:
HashMap[String, String](
"spark.driver.memory" -> "8g",
"spark.executor.memory" -> "8g",
"spark.executor.cores" -> "5",
"spark.driver.cores" -> "2",
"spark.yarn.maxAppAttempts" -> "1",
"spark.yarn.driver.memoryOverhead" -> "8192",
"spark.yarn.executor.memoryOverhead" -> "2048"
)
我的设置真的没有传播吗?还是我误解了日志?
谢谢!
【问题讨论】:
-
我将
spark.yarn.driver.memoryOverhead更改为 10240,但作业仍然失败,并出现我上面提到的完全相同的错误。但是,当我将spark.driver.memory更新了几 GB 时,它成功了。memoryOverhead配置似乎真的不起作用。 -
这个问题解决了吗?
标签: scala apache-spark hadoop hadoop-yarn