yarn上如何查看日志

在yarn页面上有一些打印日志,死活都查不到,也不知道为什么,因为yarn上一般打印的都是driver上的日志
如果要查看全部日志,请使用如下命令:

yarn logs -applicationId application_1567157424607_0006|grep "c"

命令解释:

#要查看那个应用的日志application_1567157424607_0006 是应用号,如下图yarn页面所示
yarn logs -applicationId application_1567157424607_0006

在这里插入图片描述

#| 是管道符号 grep是搜索命令 "c"是你要查询的关键字,如果你要搜 apple 就将"c" 替换成"apple"
|grep "c"
<think>好的,我现在需要帮助用户解决如何使用Yarn logs命令获取运行时日志的问题。首先,我得仔细看看用户提供的引用内容,里面有四个引用资料,可能包含相关的命令和步骤。 首先,用户的问题是关于如何用yarn logs命令来获取运行时的日志。根据引用中的信息,比如引用[1]和引用[2]都提到了使用yarn logs -applicationId <ApplicationId>来查看特定应用程序的日志。例如,用户提到使用yarn logs -applicationId application_1573014293542_24188。这说明基本命令结构是yarn logs加上-applicationId参数和具体的应用程序ID。 接下来,用户可能想知道如何找到这个Application ID。引用[2]中提到可以用yarn application -list来查看当前或历史的应用程序列表,这样就能获取到对应的ID。这应该是第一步,用户需要先列出应用程序,找到他们需要检查的那个ID。 然后,用户可能遇到日志无法导出的问题。比如引用[3]提到执行yarn logs命令后无法导出map日志,可能需要检查日志是否已经上传到HDFS。根据引用[4],Hadoop的配置参数yarn.nodemanager.remote-app-log-dir决定了日志存储的位置,所以用户需要确认这个配置是否正确,确保日志被正确上传。此外,引用[3]还提到将日志重定向到文件,如yarn logs -applicationId app_id > app.log,这也是一个有用的步骤。 另外,引用[2]中提到如果应用程序已经完成,可能无法再次被kill,但查看日志应该还是可以的。不过,如果日志没有正确上传,用户可能会遇到问题。这时候需要检查NodeManager的配置,确保日志目录设置正确,并且有足够的权限访问这些日志。 总结下来,步骤应该是: 1. 使用yarn application命令查找Application ID。 2. 使用yarn logs -applicationId来获取日志。 3. 如果日志无法获取,检查HDFS配置和日志目录。 4. 将日志输出到文件方便查看。 另外,用户可能需要知道如何查看实时日志,但yarn logs通常用于已完成的应用程序。对于运行中的应用,可能需要结合其他命令或直接查看HDFS中的日志文件。同时,权限问题也可能影响日志访问,需要确保用户有权限执行这些命令和访问HDFS路径。 最后,我需要整理这些步骤,用清晰的中文回答,并附上相关引用,确保用户能一步步操作。同时生成相关问题,帮助用户进一步理解可能遇到的问题,比如权限问题、配置调整或实时日志查看等。</think>### 如何使用 Yarn logs 命令获取运行时日志? #### 步骤说明 1. **查找目标应用的 Application ID** - 使用 `yarn application` 命令列出当前或历史运行的任务: ```bash yarn application -list ``` 这会显示所有 Yarn 应用的列表,包含 `Application ID`、状态、用户等信息[^2]。 2. **查看指定应用的日志** 通过 `yarn logs -applicationId` 命令获取完整日志: ```bash yarn logs -applicationId <ApplicationId> # 示例(替换为实际ID): yarn logs -applicationId application_1665325770064_0003 ``` 日志会直接输出到终端,包含该应用的 MapReduce 任务、Container 运行状态等信息[^1]。 3. **将日志保存到文件** 若需持久化分析,可将日志重定向到文件: ```bash yarn logs -applicationId <ApplicationId> > /path/to/logfile.log ``` 例如: ```bash yarn logs -applicationId application_1665325770064_0003 > ~/app.log ``` [^3] 4. **处理日志未上传的情况** - 若日志无法导出,需确认 Yarn 配置 `yarn.nodemanager.remote-app-log-dir` 是否正确指向 HDFS 目录。 - 检查 HDFS 中是否存在对应日志路径: ```bash hdfs dfs -ls <配置的日志目录>/<ApplicationId> ``` 此目录默认可能为 `/tmp/logs`[^4]。 #### 注意事项 - **已完成的任务**:若任务已结束,仍可通过上述命令获取日志,但无法通过 `yarn application -kill` 终止。 - **权限问题**:确保执行命令的用户有权限访问目标应用的日志(如与任务提交用户一致)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值