场景:公司使用YARN运行非MR、SPARK的任务,任务是一个长期的任务,在测试阶段,任务可能会挂掉,任务产生的日志对于问题的分析是必不可少的。
为了保留任务容器产生的日志,在YARN中要配置相应的参数,开启日志聚合等操作。
配置文件如下 yarn-site.xml。我下面只写出日志相关的配置内容
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>10080</value>
<description>日志存储时间</description>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
<description>是否启用日志聚集功能</description>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/tmp/logs</value>
<description>当应用程序运行结束后,日志被转移到的HDFS目录(启用日志聚集功能时有效)。</description>
</property>
<property>
<name> yarn.nodemanager.remote-app-log-dir-suffix</name>
<value></value>
<description>远程日志目录子目录名称(启用日志聚集功能时有效)</description>
</property>
当任务运行结束后,YARN会把appmaster container任务的日志都上传到HDFS的地址中;如下图所示。
文件目录为:/hdfs远程目录地址/用户/logs/任务名
进入任务后,会后一个日志文件,这个文件内存储了appmaster 任务容器的日志。
现在,我们就可以分析历史任务日志了。