1.各种id释义
1)jobId
描述:出自MapReduce,对作业的唯一标识。
格式:job_${clusterStartTime}_${jobid}
例子:job_1498552288473_2742
2)applicationId
描述:在yarn中对作业的唯一标识。
格式:application_${clusterStartTime}_${applicationId}
例子:application_1498552288473_2742
3)taskId
描述:作业中的任务的唯一标识
格式:task_${clusterStartTime}_${applicationId}_[m|r]_${taskId}
例子:task_1498552288473_2742_m_000000、task_1498552288473_2742_r_000000
4)attempId
描述:任务尝试执行的一次id
格式:attempt_${clusterStartTime}_${applicationId}_[m|r]_${taskId}_${attempId}
例子:attempt_1498552288473_2742_m_000000_0
5)appAttempId
描述:ApplicationMaster的尝试执行的一次id。
格式:appattempt_${clusterStartTime}_${applicationId}_${appAttempId}
例子:appattempt_1498552288473_2742_000001
6)containerId:
描述:container的id
格式:container_e*epoch*_${clusterStartTime}_${applicationId}_${appAttempId}_${containerId}
例子:container_e20_1498552288473_2742_01_000032、container_1498552288473_2742_01_000032
2. 日志分类
- 服务类日志
- ResourceManager
hadoop.log.dir, 默认为/var/log/hadoop-yarn
- NodeManager
hadoop.log.dir,默认为/var/log/hadoop-yarn
- 存放在本地,可以查看服务运行过程中的异常,可以在CDH中配置最大日志大小及最大日志文件备份,来滚动删除
- ResourceManager
- 作业日志
hdfs上的路径,前缀目录:/tmp/logs/
yarn.nodemanager.remote-app-log-dir
后缀目录:logs
yarn.nodemanager.remote-app-log-dir-suffix
所以实际路径为 /tmp/logs/${user}/logs
hdfs上的日志保留多久
yarn.log-aggregation.retain-seconds
多长时间检查一次日志,并将满足条件的删除
yarn.log-aggregation.retain-check-interval-seconds
每隔一段时间进行日志的聚合,默认为-1,任务执行完成后立刻聚合
yarn.nodemanager.log-aggregation.roll-monitoring-interval-seconds
application执行结束后延迟多久删除本地文件及日志
yarn.nodemanager.delete.debug-delay-sec ```
4. 日志聚合异常
问题描述
开启日志聚合后,日志没有写入hdfs中,本地日志堆积,导致磁盘空间不足,报警
解决方法
查看nodemanager日志,发现由于权限问题导致日志写入hdfs失败,用户是hive,hdfs上/tmp/logs/hive/logs的权限是 mapred :hadoop
更改为hive :hadoop hdfs dfs -chown hive:hadoop /tmp/logs/hive/logs
问题解决,在yarn jobhistory web界面可以看到日志
5. 参考文章
https://blog.csdn.net/peidezhi/article/details/105638705
https://www.jianshu.com/p/83fcf7478dd7
https://cloud.tencent.com/developer/article/1585727