概要描述
目前集群上yarn看日志不是很方便,很多时候webui都点不开,导致客户端提交的yarn任务失败后,找日志比较麻烦。本文提供以下两种找application日志的方法,本案例以compact orc_sin_tbl表任务为例查看相应日志。
详细说明
方法一
-
在 metastore 所在节点如 /var/log/inceptor1/hive-metastore.log 文件中,以表名 orc_sin_tbl 为关键字 grep,获取如下日志:
2022-02-16 13:48:14,237 INFO compactor.CompactorMR: (CompactorMR.java:launchCompactionJob(318)) [xixia03-257()] - Submitted compaction job 'xixia03-257-compactor-default.orc_sin_tbl.sex=F' with jobID=job_1641463406975_0002
-
根据上一步操作获得application编号为 1641463406975_0002,完整application为application_1641463406975_0002;
此时也可以在yarn服务 master Resource Manager的webui看到该任务的信息:
-
到集群 master Resource Manager 节点的 /var/log/yarn1/hadoop-yarn-resourcemanager-[hostname].log 中以 application_1641463406975_0002 关键字去grep,获取如下日志:
2022-02-16 13:47:44,993 INFO org.apache.hadoop.yarn.server.resourcemanager.RMAuditLogger: USER=hive OPERATION=AM Allocated Container TARGET=SchedulerApp RESULT=SUCCESS APPID=application_1641463406975_0002 CONTAINERID=container_e154_1641463406975_0002_01_000001
-
根据上一条获取到application对应的container为 container_e154_1641463406975_0002_01_000001(注意有时候不止一个container);
-
以 container_e154_1641463406975_0002_01_000001 为关键字继续grep Resource Manager的日志,获取如下日志:
2022-02-16 13:47:44,993 INFO org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerNode: Assigned container container_e154_1641463406975_0002_01_000001 of capacity <memory:2048, vCores:1> on host xixia01:53905, which has 1 containers, <memory:2048, vCores:1> used and <memory:30084, vCores:9> available after allocation
-
根据上一条可以得知container到 xixia01 节点上执行去了,去xixia01上的yarn log目录找到application下的container日志
-
yarn log的一般配置目录为 /mnt/diskN/hadoop/yarn/logs(推荐下载tree命令来查找),到各个挂载盘中找到相应container目录不为空的那个,一般下面会有stderr,stdout,syslog三个文件
方法二
参考该文档开启日志聚合功能: Yarn 的 Application 日志聚合和定期清理