在我的纱线群集中,火花流应用程序的日志写在应用程序容器的节点上。实际上,有一个用于编写属于应用程序的日志的字典,它由名为yarn.log.directory?的字段配置。我不记得确切的名字,所以你可以检查出来。
以群集模式启动Spark应用程序时( --deploy-mode cluster ) log=/tmp/cc 指着 /tmp/cc 这是运行驱动程序和执行程序的“容器”的根目录。它们将位于群集中的计算机上。
--deploy-mode cluster
log=/tmp/cc
/tmp/cc
在您的情况下,您必须找到运行驱动程序和执行程序的计算机并找到该目录。
由于在Spark中管理分布式环境中的日志非常麻烦,因此Spark支持的集群管理器(即Hadoop YARN,Apache Mesos,Kubernetes)允许从计算机收集日志并通过Web UI或命令行使其可用去下载。在YARN,它会是 yarn logs -applicationId 。
查找spark日志写入位置的最佳选项是使用Spark UI,在集群模式下,驱动程序日志位于群集节点之一。
Spark UI提供了大量信息。 http://ashkrit.blogspot.com/2018/11/insights-from-spark-ui.html 帖子有一些细节。