如果 打开日志聚合(使用 yarn.log-aggregation-enable配置),容器日志将复制到HDFS中,而本地计算机上的日志将被删除。查看日志可以通过 yarn logs 命令从群集中的任何位置查看。
yarn logs -applicationId <app ID>
如果 日志聚合未打开 时,日志将保存在每台计算机上的本地YARN_APP_LOGS_DIR,通常配置为 /tmp/logs 或 $HADOOP_HOME/logs/userlogs,取决于Hadoop版本和安装配置。
yarn-site.xml中有几个配置项与日志的保存与删除,本地job执行文件的保留与删除有关。若不做配置,日志和job.jar会在application执行结束后被直接删除掉。
yarn.log-aggregation-enable true 执行结束后收集(聚合)各个container本地的日志
yarn.nodemanager.remote-app-log-dir /app-logs 聚合日志后在hdfs的存放地址
yarn.nodemanager.remote-app-log-dir-suffix logs 聚合日志存放的后缀,存放地址由 ${remote-app-log-dir}/${user}/{thisParam}构成
yarn.log-aggregation.retain-seconds 2592000 聚合日志在hdfs上的保留时间,以秒为单位,到时后被删除,保留30天后删除
yarn.log.server.url http://hostname:19888/jobhistory/logs log server的地址
yarn.nodemanager.local-dirs /hadoop/yarn/local 存放 application 运行的本地文件(计算过程中的中间数据存储)的根目录,执行完毕后删除,按用户名存储
yarn.nodemanager.log-dirs /hadoop/yarn/log 存放 container 运行的本地日志的根目录,执行完毕后删除,按用户名存储
yarn.nodemanager.log.retain-seconds 604800 本地日志的保留时间,只有aggregation没有enable时才生效
yarn.nodemanager.delete.debug-delay-sec 600 yarn 的 DeletionService 在任务结束多长时间后,删除本地化的日志(yarn.nodemanager.local-dirs)和container的运行日志(yarn.nodemanager.log-dirs)。 这个时间最好设置的大一点。
要实现日志聚集,只需要在yarn-site.xml中配置如下几个参数:
(1) yarn.log-aggregation-enable
参数解释:是否启用日志聚集功能。
默认值:false
(2) yarn.log-aggregation.retain-seconds
参数解释:在HDFS上聚集的日志最多保存多长时间。
默认值:-1
(3) yarn.log-aggregation.retain-check-interval-seconds
参数解释:多长时间检查一次日志,并将满足条件的删除,如果是0或者负数,则为上一个值的1/10。
默认值:-1
(4) yarn.nodemanager.remote-app-log-dir
参数解释:当应用程序运行结束后,日志被转移到的HDFS目录(启用日志聚集功能时有效)。
默认值:/tmp/logs
<property>
<!--开启日志聚合-->
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<!--日志聚合hdfs存储路径-->
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/tmp/logs</value>
</property>
<property>
<!--hdfs上的日志保留时间-->
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<property>
<!--应用执行时存储路径-->
<name>yarn.nodemanager.log-dirs</name>
<value>file:/mnt/ddb/2/hadoop/nm</value>
</property>
<property>
<!--应用执行完日志保留的时间,默认0,即执行完立刻删除-->
<name>yarn.nodemanager.delete.debug-delay-sec</name>
<value>0</value>
</property>
root@hadoop01:/opt/hadoop-2.7.7/hadoop/nm/application_14715150781_0007
# ls
container_14715150781_0007_01_000001
container_14715150781_0007_01_000002
container_14715150781_0007_01_000003
注:其中container_14715150781_0007_01_000001为RM为application_14715150781_0007分配的第一个container,即AM所在的container,第一个container都是运来启动AM的,containerID形式为,container_APPID_01_000001,你在RM日志文件里面根据container_APPID搜索即可看到为该APPID分配的container的分布情况及生命周期。
drwxrwx--- - root supergroup 0 2016-08-18 18:29 /tmp/logs/root/logs/application_14715150781_0002
drwxrwx--- - root supergroup 0 2016-08-18 19:10 /tmp/logs/root/logs/application_14715150781_0003
drwxrwx--- - root supergroup 0 2016-08-18 19:17 /tmp/logs/root/logs/application_14715150781_0004
yarn logs --applicationId <id>
1.配置文件上增加配置信息
yarn-site.xml
<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/tmp/logs</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://100.86.40.113:19888/jobhistory/logs/</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>106800</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>100.86.40.113:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>100.86.40.113:19888</value>
</property>
mapred-site.xml
<property>
<!-- 表示提交到hadoop中的任务采用yarn来运行,要是已经有该配置则无需重复配置 -->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<!--日志监控服务的地址,一般填写为nodenode机器地址 -->
<name>mapreduce.jobhistroy.address</name>
<value>100.86.40.113:10020</value>
</property>
<property>
<name>mapreduce.jobhistroy.webapp.address</name>
<value>100.86.40.113:19888</value>
</property>
2.启动JobHistoryServer
# hadoop的bin目录下执行
sbin/mr-jobhistory-daemon.sh start historyserver
3.访问yarnweb页面查看日志
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- esig.cn 版权所有 湘ICP备2023023988号-3
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务