我们遇到了Spark 1.6.2的奇怪问题。我们正在以clsuter模式提交Spark应用程序。一切都很好,但有时启动应用程序的客户端进程会挂断。解锁它的唯一方法是检查它的sterr:然后它完成。我试着通过一个例子来解释我的意思。
我们位于群集的边缘节点上,我们运行:
spark-submit --master yarn-cluster ... &
事实证明客户端进程pid是12435.然后,Spark应用程序运行并完成(我们可以从Spark UI中看到它)。尽管如此,在边缘节点上,进程12435保持活动并且永远不会结束。然后,我们尝试从/ proc / 12435 / fd / 2检查其输出。当我们这样做时,过程结束。
我无法理解发生了什么以及如何解决它。有人有想法吗?
谢谢你, 马可
答案 0 :(得分:0)
这与火花无关。
这是一个shell问题。您忘记将错误日志重定向到任何地方。
任何命令都有两个输出流,stdout和stderr,你应该在启动后台作业时提供它们。
如果要将两个输出重定向到同一文件。
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override public void onTabSelected(Tab tab) {
}
@Override public void onTabUnselected(Tab tab) {
}
@Override public void onTabReselected(Tab tab) {
}
});
如果您想在一个中输入错误并在其他
中输出日志spark-submit --master yarn-cluster ... > ~/output.txt 2>&1 &