我在几个案例中遇到以下错误:
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
我注意到它发生在一个大排序,但当我改变“排序分配内存”它没有帮助。
我试着改变其他的内存属性,但是,我还是没有找到解决办法。mapreduce的工作原理以及不同组件之间的相互作用有什么好的解释吗?我该换什么?我在哪里找到导致这种情况的java错误?
2条答案
按热度按时间pgky5nke1#
退出代码143与内存/gc问题有关。默认的mapper/reducer内存设置可能不足以运行大型数据集。因此,在调用大型Yarn作业时,可以尝试设置更高的am、map和减速机内存。
请查看此链接: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
优秀的源代码优化您的代码。
jqjz2hbq2#
我发现我把两件事搞混了。143退出代码来自关闭的度量收集器。据我所知,由于没有记忆问题,这些工作都被杀了。问题是大窗口函数不能减少数据,直到最后一个包含所有数据的窗口函数。
虽然,日志中给出工作被杀原因的地方,我仍然找不到。