在纱线上运行火花时,我一直看到退出代码和退出状态:
以下是一些:
CoarseGrainedExecutorBackend: RECEIVED SIGNAL 15: SIGTERM
...failed 2 times due to AM Container for application_1431523563856_0001_000002 exited with exitCode: 10...
...Exit status: 143. Diagnostics: Container killed on request
...Container exited with a non-zero exit code 52:...
...Container killed on request. Exit code is 137...
我从来没有发现任何这些消息是有用的......有没有机会解释这些消息究竟出了什么问题?我搜索了高低不一的表格来解释错误,但没有.
我能够从上面解释的唯一一个是退出代码52,但那是因为我在这里查看了源代码.这是说这是一个OOM.
我是否应该停止尝试解释其余的退出代码并退出状态?或者我错过了一些明显的方式,这些数字实际意味着什么?
即使有人能告诉我之间的差异exit code,exit status以及SIGNAL这将是有益的.但我现在只是随机猜测,而且我周围的其他所有人都使用了火花.
最后,为什么一些退出代码小于零以及如何解释这些?
例如 Exit status: -100. Diagnostics: Container released on a *lost* node
我通过spark-submit开始了一个纱线集群模式火花工作.为了表示部分失败等,我想将exitcode从驱动程序传递给调用spark-submit的脚本.
我尝试了两个,System.exit并在驱动程序中抛出SparkUserAppException,但在这两种情况下CLI只得到1,而不是我传递的exitcode.
我认为传递自定义exitcode是不可能的,因为驱动程序传递的任何exitcode都将转换为yarn状态,yarn会将任何失败的exitCode转换为1或失败.