【问题标题】:Spark client never ends running in yarn-cluster modeSpark 客户端永远不会在 yarn-cluster 模式下运行
【发布时间】:2016-12-10 01:33:55
【问题描述】:

我们在使用 Spark 1.6.2 时遇到了一个奇怪的问题。我们以集群模式提交 Spark 应用程序。一切都很好,但有时启动应用程序的客户端进程碰巧挂断了。解锁它的唯一方法是检查它的 sterr:然后它就完成了。我试着用一个例子来解释我的意思。

我们在集群的边缘节点上,我们运行:

spark-submit --master yarn-cluster ... &

原来客户端进程 pid 是 12435。然后,Spark 应用程序运行并完成(我们可以从 Spark UI 中的 yarn 看到它)。尽管如此,在边缘节点上,进程 12435 仍然存在并且永远不会结束。然后,我们尝试从 /proc/12435/fd/2 检查它的输出。当我们这样做时,这个过程就结束了。

我不明白发生了什么以及如何解决它。有人有想法吗?

谢谢你, 马可

【问题讨论】:

    标签: apache-spark hadoop-yarn


    【解决方案1】:

    这与spark无关。

    这是一个外壳问题。您忘记将错误日志重定向到任何地方。

    任何命令都有两个输出流,stdout 和 stderr,您应该在启动后台作业时同时提供它们。

    如果你想将两个输出重定向到同一个文件。

    spark-submit --master yarn-cluster ...  > ~/output.txt 2>&1 &
    

    如果你想要一个错误,另一个输出日志

    spark-submit --master yarn-cluster ...  > ~/output.txt 2>~/error.txt &
    

    【讨论】:

    • 感谢您的回答,但事实并非如此,因为实际上我们是通过 Apache NiFi 启动命令并且输出被重定向到 NiFi。
    • 我仍然建议手动触发 spark-submit 并查看,只是为了排除它。
    猜你喜欢
    • 2015-08-02
    • 2016-07-23
    • 2014-11-04
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 2021-07-06
    • 2016-01-18
    相关资源
    最近更新 更多