Hadoop yarn 技术分享
  • 介绍
  • YARN Service
  • 事件处理
    • AsyncDispatcher
    • stateMachine
  • YARN RPC
    • RPC 设计
    • RPC 实现
  • 交互协议
  • 提交app的过程
    • 提交APP概要
    • 客户端提交app
    • RM接收请求
    • RM分配App
    • RM下发App
    • NM拉起APP
  • YARN 高可用
    • RM HA 基础
    • RM HA
  • YARN调度策略
    • Untitled
    • YARN-队列配置
  • 问题分析总结
    • 集群繁忙时偶发性空指针导致app执行失败
    • YARN 资源充足,但app等待调度排长队
    • YARN UI看不了app 日志
    • YARN UI看不了app 日志2
    • TEZ 资源不释放问题分析
    • NM频繁挂掉
    • container执行异常
    • YARN RM主备切换异常
Powered by GitBook
On this page
  • 现象
  • 猜测
  • 异常
  • 原因分析
  • 确认日志查询路径
  • historyserver 问题分析
  • 更多
  • timelineserver 和 JobHistoryServer 关系
  • yarn 日志查询逻辑
  • 确认timelineserver 节点
  • timelineserver 启动停止
  • historyserver 启动

Was this helpful?

  1. 问题分析总结

YARN UI看不了app 日志2

app 日志查看异常

PreviousYARN UI看不了app 日志NextTEZ 资源不释放问题分析

Last updated 4 years ago

Was this helpful?

现象

查看日志,出现如下错误提示

同时发现正在运行app 日志是可以查看的

猜测

正在运行的app 日志可见,也就是本地日志是有的,通过yarn.nodemanager.log-dirs 配置目录我们也确认了正在运行的app 日志存在 所以我们猜测就是日志聚合的时候出现问题。

异常

通过container ID 到rm 主节点查询container 运行到NM,再通过container ID查询相关日志,得到如下异常信息

通过对异常进一步分析,发现这个异常应该不影响日志聚合。同时我们也在hdfs 查到了聚合之后对日志

原因分析

结合上面异常情况,我们考虑日志聚合成功,但是查询日志出现问题。有可能是通过hdfs 查询日志过程中,出现连接异常 Operation category READ is not supported in state standby

确认日志查询路径

最有可能是 historyserver 异常

historyserver 问题分析

异常查询

打开historyserver 日志, /data/var/log/hadoop-mapreduce/mapred]# vim mapred-mapred-historyserver-tbds-9-37-23-115.log 获取如下异常信息

问题分析

从问题提示看应该是客户端和服务端用的认证方式不一样,通过查看historyserver 认证配置(hadoop-mapreduce]# vim conf/core-site.xml)如下图:

可以看到客户端使用的是 simple 认证,而namenode 配置的认证方式是tbds

解决

将client的认证方式与namenode 的认证方式保持一致(修改配置需要重启)。

更多

timelineserver 和 JobHistoryServer 关系

timelineserver 和 JobHistoryServer 是两个独立的进程,timelineserver 的入口类是ApplicationHistoryServer。JobHistoryServer 入口类是org.apache.hadoop.mapreduce.v2.hs.JobHistoryServer

官网将 JobHistoryServer 作为timelineServer 的一部分,我理解的原因是yarn ui 入口是 timelineServer ,要查询app 日志,首先从timelineServer 获取app详情,其中有container的日志链接,而具体的日志内容目前依然还是从 JobHistoryServer 获取。

yarn 日志查询逻辑

yarn ui 入口是 timelineServer ,要查询app 日志,首先从timelineServer 获取app详情,其中有container的日志链接,而具体的日志内容目前依然还是从 JobHistoryServer 获取,JobHistoryServer 通过访问hdfs 拉取聚合之后的日志信息

确认timelineserver 节点

查看conf/yarn-site.xml 文件 yarn.log.server.url 配置属性 JobHistoryServer 在tbds 可以看到

timelineserver 启动停止

export HADOOP_LIBEXEC_DIR=/usr/hdp/current/hadoop-client/libexec && /usr/hdp/current/hadoop-yarn-timelineserver/sbin/yarn-daemon.sh --config /etc/hadoop/conf stop timelineserver

historyserver 启动

export HADOOP_LIBEXEC_DIR=/usr/hdp/current/hadoop-client/libexec && /usr/hdp/current/hadoop-mapreduce-historyserver/sbin/mr-jobhistory-daemon.sh --config /etc/hadoop/conf start historyserver