Spark核心编程进阶-yarn模式下日志查看详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark核心编程进阶-yarn模式下日志查看详解相关的知识,希望对你有一定的参考价值。

参考技术A yarn模式下调试运行中的spark作业

在yarn模式下,spark作业运行相关的executor和ApplicationMaster都是运行在yarn的container中的
一个作业运行完了以后,yarn有两种方式来处理spark作业打印出的日志

这种方式的话,顾名思义,就是说,将散落在集群中各个机器上的日志,最后都给聚合起来,让我们可以统一查看
如果打开了日志聚合的选项,即yarn.log-aggregation-enable,container的日志会拷贝到hdfs上去,并从机器中删除

对于这种情况,可以使用yarn logs -applicationId <app ID>命令,来查看日志
yarn logs命令,会打印出application对应的所有container的日志出来,当然,因为日志是在hdfs上的,我们自然也可以通过hdfs的命令行来直接从hdfs中查看日志
日志在hdfs中的目录,可以通过查看yarn.nodemanager.remote-app-log-dir和yarn.nodemanager.remote-app-log-dir-suffix属性来获知

日志也可以通过spark web ui来查看executor的输出日志
但是此时需要启动History Server,需要让spark history server和mapreduce history server运行着
并且在yarn-site.xml文件中,配置yarn.log.server.url属性
spark history server web ui中的log url,会将你重定向到mapreduce history server上,去查看日志

如果没有打开聚合日志选项,那么日志默认就是散落在各个机器上的本次磁盘目录中的,在YARN_APP_LOGS_DIR目录下
根据hadoop版本的不同,通常在/tmp/logs目录下,或者$HADOOP_HOME/logs/userlogs目录下
如果你要查看某个container的日志,那么就得登录到那台机器上去,然后到指定的目录下去,找到那个日志文件,然后才能查看

以上是关于Spark核心编程进阶-yarn模式下日志查看详解的主要内容,如果未能解决你的问题,请参考以下文章

Spark2x on yarn日志配置详解

yarn查看日志的几种方法

Spark On Yarn如何查看任务日志

Spark 任务调度机制详解

详解Spark运行模式(local+standalone+yarn)

Spark 在yarn上运行模式详解:cluster模式和client模式