yarn 异常: Error when storing the finish data of container

yarn resourcemanager 异常分析:org.apache.hadoop.yarn.server.resourcemanager.ahs.RMApplicationHistoryWriter: Error when storing the finish data of container

在查看yarn resource manager 日志时,发现存在大量的错误日志,具体如下:

2018-03-23 14:32:08,979 ERROR org.apache.hadoop.yarn.server.resourcemanager.ahs.RMApplicationHistoryWriter: Error when storing the finish data of container container_1521113577986_48858_01_000020
2018-03-23 14:32:08,980 ERROR org.apache.hadoop.yarn.server.resourcemanager.ahs.RMApplicationHistoryWriter: Error when storing the finish data of container container_1521113577986_48858_01_000018
2018-03-23 14:32:08,980 ERROR org.apache.hadoop.yarn.server.resourcemanager.ahs.RMApplicationHistoryWriter: Error when storing the finish data of container container_1521113577986_48858_01_000002

不用紧张,这个错误并不影响程序的正常执行。这是由spark-yarn的一个bug引起,bug编号SPARK-4069,bug发现时间为2014-10-23,影响版本为spark-1.1.0及以后,但是官方觉得这个bug影响不大,所以并没有修复的打算。

引发这个错误的原因是,spark作业在运行结束后,会直接通知yarn resource manager将ApplciationMaster(也就是driver)注销掉,而在此之前却并未先把executors全部注销,最终yarn只能决定将这些excutors回收掉,而在回收完成时,默认会将一些状态信息汇报给ApplciationMaster进行日志记录,然而此时ApplciationMaster已经先行离去,没有对象可以汇报,所以就会报出这个异常。

因此,这并不会对spark作业运行产生任何影响,我觉得spark之所以这么做,且没有修复此bug的原因。一是从执行速度上考虑,快速释放资源,简单粗暴但非常有效,没有必要在释放资源上浪费过多时间;二是最后阶段的日志信息实际上没有什么用处,而且计算结束后的事情,spark框架并不关心,没有必要把精力放在处理这个问题上。

附:bug地址:https://issues.apache.org/jira/browse/SPARK-4069

你可能感兴趣的:(yarn 异常: Error when storing the finish data of container)