背景:如图所示:为了从Tracking_UI中history界面中直接查看运行日志或是通过yarn logs查看日志命令,需要进行如下配置
图1
1、编辑:yarn-site.xml
<property>
<name> yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://bigdata02:19888/jobhistory/logs/</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>10080</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/yarn</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir-suffix</name>
<value>logs</value>
</property>
启用日志聚合功能:
-
1、在默认情况下,Hadoop将所有日志存储在运行作业任务的节点上。在特定时间段后应用程序日志会被自动删除。可以配置日志聚合功能,将日志存储在HDFS中来长久保留日志信息。在默认情况下,日志聚合是禁止的,可以通过yarn.log-aggregation-enable来启用
-
2、启用日志聚合后,NodeManager会将所有容器日志连接到一个文件中并将它保存在HDFS中 一个特定的应用程序的实际HDFS位置是"${yarn.nodemanager.remote-app-log-dir}/${user.name}/${yarn.nodemanager.remote-app-log-dir-suffix}/<application ID>"
- 3、在禁用日志聚合功能是,以下两个参数指定日志保留的时间和日志删除行为: yarn.nodemanager.log.retain-seconds:指定日志保留的时间周期,以秒为单位,默认10800 yarn.nodemanager.log.deletion-threads-count:指定日志用于清理日志的线程数,默认值为4。
-
4、在启用日志聚合功能后,上述两个参数全部时效,以下是日志保留配置参数将生效: yarn.log-aggregation.retain-seconds:日志删除HDFS日志聚合的时间,若将此参数设置为一个负数(例如默认值为-1),则永久不删除日志,这意味着应用程序的日志聚合所占的空间会不断的增长,从而造成HDFS集群的资源过度使用。 yarn.log.server.url:指定应用程序(例如:MRAppMaster,SparkAppMaster等等)运行完成后可以访问聚合日志的URL,若不指定,默认值为空。
2、经过上面的配置,重启YARN集群和HistoryServer服务后立即生效
./mapred --daemon start historyserver
3.点击图1中history,进入日志页面,此时可以查看运行的日志,如图所示
4、也可以通过yarn logs命令查看运行日志,命令如下
yarn logs -applicationId application_1660378737778_0001