Log Aggregation Status TIME_OUT的缘起

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 在spark on yarn运行中,有时会发现spark程序运行完毕后,spark的运行界面没有信息,或者找不到相关的运行信息了,经仔细查看NodeManager UI ,出现如下信息: Log Aggregation Status TIME_OUT
在spark on yarn运行中,有时会发现spark程序运行完毕后,spark的运行界面没有信息,或者找不到相关的运行信息了,经仔细查看NodeManager UI
,出现如下信息:
Log Aggregation Status TIME_OUT

原来NodeManager可以在应用结束后将日志安全地移动到分布式文件系统HDFS,当应用(application)结束时,用户能通过 YARN 的命令行工具、网页端或者HDFS中来查看这些日志
当打开yarn.log-aggregation-enable为true时,会启用聚合,如果为false,NodeManager会把日志存储在节点本地(${yarn.nodemanager.log-dirs}/application_${appid} )下

日志聚合的相关配置:
yarn.nodemanager.remote-app-log-dir: 这是 NodeManager将日志聚合后存放在HDFS 上的地址.
yarn.nodemanager.remote-app-log-dir-suffix: 日志目录会这样创建 {yarn.nodemanager.remote-app-log-dir}/${user}/{thisParam}
yarn.log-aggregation.retain-seconds: 聚合后的日志文件在多久后被删除, 配置成 -1 或者一个负值不会删除
yarn.log-aggregation.retain-check-interval-seconds: 多长时间去检查一次哪些聚合日志需要删除.
yarn.log.server.url: 应用结束后NodeManager会将网页访问自动跳转到聚合日志的地址, 指向的是 JobHistory上的地址.

回到“Log Aggregation Status TIME_OUT”这个问题上来,如果有1个控制超时的参数就可以解决这个问题了,遗憾的是,hadoop2.8.0版本才出现了下面这个参数,我们来看官方的注释:

<property>
    <name>yarn.log-aggregation-status.time-out.ms</name>
    <value>600000</value>
    <description>
        How long for ResourceManager to wait for NodeManager to report its
        log aggregation status. If waiting time of which the log aggregation
        status is reported from NodeManager exceeds the configured value, RM
        will report log aggregation status for this NodeManager as TIME_OUT
    </description>
</property>

在更低的hadoop版本中如果要修复这个问题,通过打patch即可解决

备注:
要打印出一个给定应用的所有日志, 命令如下
> yarn logs -applicationId <application ID>



相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
存储 资源调度 分布式计算
CDP中配置Apache Hadoop Yarn的安全性
CDP中配置Hadoop Yarn的安全性。
854 0
CDP中配置Apache Hadoop Yarn的安全性
|
SQL druid 搜索推荐
最强最全面的数仓建设规范指南 (一)
本文将全面讲解数仓建设规范,从数据模型规范,到数仓公共规范,数仓各层规范,最后到数仓命名规范,包括表命名,指标字段命名规范等!
13559 2
|
消息中间件 Kafka 流计算
Flink读取Kafka报Error sending fetch request
实时计算Flink读取消息队列Kafka,flink日志中出现Error sending fetch request (sessionId=1510763375, epoch=12890978) to node 103: {}. org.apache.flink.kafka.shaded.org.apache.kafka.common.errors.DisconnectException: null
12701 3
Flink读取Kafka报Error sending fetch request
|
12月前
|
调度
Doris给动态分区添加历史分区问题汇总
Doris动态分区表添加历史分区
|
消息中间件 存储 Apache
Apache Paimon 表模式最佳实践
Apache Paimon 表模式最佳实践
3754 57
|
11月前
|
SQL 分布式计算 Hadoop
【赵渝强老师】Hadoop生态圈组件
本文介绍了Hadoop生态圈的主要组件及其关系,包括HDFS、HBase、MapReduce与Yarn、Hive与Pig、Sqoop与Flume、ZooKeeper和HUE。每个组件的功能和作用都进行了简要说明,帮助读者更好地理解Hadoop生态系统。文中还附有图表和视频讲解,以便更直观地展示这些组件的交互方式。
724 5
|
消息中间件 缓存 Kafka
Kafka的producer如何实现幂等性
Kafka的producer如何实现幂等性
650 1
|
分布式计算 Java Hadoop
NameNode 处理线程配置(心跳并发)
NameNode线程池处理客户端和数据节点请求,如读写文件及心跳、块报告。通过调整`dfs.namenode.handler.count`(默认10,示例设为21)在`hdfs-site.xml`中可控制并发处理能力。线程数过多或过少都可能影响性能,需平衡资源使用并进行基准测试以确定最佳值。合理线程数可通过公式`int(math.log(N) * 20)`计算,N为服务器数量。例如,3台服务器的计算结果为21。
459 4
|
消息中间件 大数据 Kafka
记录一下Kafka报错:timeout expired while fetching topic metadata
记录一下Kafka报错:timeout expired while fetching topic metadata
947 0