TimelineServer目录文件数量到达上限
问题现象
MRS 3.x版本集群,ResourceManager日志显示TimelineServer数据目录数量到达上限打印大量错误日志。
异常日志内容如下:
The directory item limit of /tmp/hadoop-omm/yarn/timeline/generic-history/ApplicationHistoryDataRoot is exceeded: limit=1048576 items=1048576
原因分析
TimelineServer在MRS 3.x版本会使用一个HDFS的目录(例如以上报错中的“/tmp/hadoop-omm/yarn/timeline/generic-history/ApplicationHistoryDataRoot”路径)来存放历史任务信息,导致该目录下的文件不断累积,直到到达HDFS配置的目录数量上限(“dfs.namenode.fs-limits.max-directory-items”默认为“1048576”)。
此时请将“yarn.timeline-service.generic-application-history.enabled”(客户端查询app任务数据时是否从TimelineServer服务获取)参数设置为“false”,直接从ResourceManager上面获取app任务数据。
处理步骤
- 登录FusionInsight Manager,选择“集群 > 服务 > Yarn > 配置 > 全部配置”。
- 在左侧导航栏选择“Yarn(服务) > 自定义”,在自定义页面的“yarn.yarn-site.customized.configs”参数后添加“yarn.timeline-service.generic-application-history.enabled”,值为“false”,单击“保存”。
- 滚动重启ResourceManager和TimelineServer实例。
单击Yarn服务的“实例”页签,勾选所有ResourceManager和TimelineServer实例,选择“更多 > 滚动重启实例”。
- (可选)根据业务需要,在业务低峰时滚动重启NodeManager。
- 实例重启完成后,删除HDFS上的存放历史任务信息的目录,例如“/tmp/hadoop-omm/yarn/timeline/generic-history/ApplicationHistoryDataRoot”。