目录
大家好,我是好学的小师弟,最近在做性能测试,发现yarn上的任务日志查看不了了
问题报错截图:
问题原因:
去显示的报错的任务节点上查看nodemanager日志,发现是当前存储yarn日志的hdfs单个目录下文件数量已经达到最大值1048576,所以yarn日志聚合不了,导致查看不了
什么是yarn日志聚合?
由于NodeManager将所有Container的运行日志保存到本地磁盘上,因此,随着时间的积累,日志必将越来越多。为了避免大量Container日志“撑爆”磁盘空间,NodeManager将定期清理日志文件,该功能由组件LogHandler(当前存在两种实现:NonAggregatingLogHandler和LogAggregationService)完成。
除定期删除外,NodeManager还提供了另一种日志处理方式——日志聚集转存,管理员可通过将yarn的配置参数yarn.log-aggregation-enable置为true启用该功能。
该机制将HDFS作为日志聚集仓库,它将应用程序(container)产生的日志上传到HDFS上,以便统一管理和维护。
这样我们就可以直接在yarn的页面。查看任务日志。
解决方法:
1.首先查看yarn的配置文件参数 yarn.nodemanager.remote-app-log-dir,他就是container的日志上传到hdfs的目录
2.在后台,通过命令
hdfs dfs -count /目录名 #查看container日志上传到hdfs上该目录下,有多少文件
3.查看命令结果,如果文件数量>=1048576,就将hdfs中的该目录删除
4.重新登录yarn,查看任务日志,发现已经可以查看了
--该篇初版,本人已在hw_cloud发表过;这篇是二次完善
新人创作不易,觉得不错的看官,点个赞吧,么么哒!!!
转载注明出处!