被ApplicationMaster退出代码杀死的容器是143

Yuv*_*val 6 hadoop hive mapreduce hadoop2

在几种情况下,我一直遇到以下错误:

2017-03-23 11:55:10,794 INFO [AsyncDispatcher event handler] org.apache.hadoop.mapreduce.v2.app.job.impl.TaskAttemptImpl: Diagnostics report from attempt_1490079327128_0048_r_000003_0: Container killed by the ApplicationMaster.

Container killed on request. Exit code is 143
Container exited with a non-zero exit code 143
Run Code Online (Sandbox Code Playgroud)

我注意到它发生了很多种,但是当我更改“排序分配内存”时,它没有帮助。

我曾尝试更改其他内存属性,但该解决方案使我难以理解。是否对Mapreduce的工作原理以及不同组件之间的相互作用有很好的解释?我应该改变什么?我在哪里找到导致此错误的Java错误?

Dee*_*ehi 8

退出代码 143 与内存/GC 问题有关。您的默认 Mapper/Reducer 内存设置可能不足以运行大型数据集。因此,当调用大型纱线作业时,尝试设置更高的 AM、MAP 和 REDUCER 内存。

请查看此链接:https : //community.hortonworks.com/questions/96183/help-troubleshoot-container-killed-by-the-applicat.html

请查看:https : //www.slideshare.net/SparkSummit/top-5-mistakes-when-writing-spark-applications-63071421

优化代码的绝佳来源。


Yuv*_*val 3

我发现我混淆了两件不同的事情。143 退出代码来自已关闭的指标收集器。据我了解,乔布斯被杀并不是因为内存问题。问题在于大窗口函数无法减少数据,直到最后一个包含所有数据的函数。

尽管如此,日志中给出该作业被终止原因的位置仍然让我困惑。