文档首页/ MapReduce服务 MRS/ 故障排除/ 使用Yarn/ TimelineServer目录文件数量到达上限
更新时间:2022-11-10 GMT+08:00

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任务数据。

处理步骤

  1. 登录FusionInsight Manager,选择“集群 > 服务 > Yarn > 配置 > 全部配置”。
  2. 在左侧导航栏选择“Yarn(服务) > 自定义”,在自定义页面的“yarn.yarn-site.customized.configs”参数后添加“yarn.timeline-service.generic-application-history.enabled”,值为“false”,单击“保存”。
  3. 滚动重启ResourceManager和TimelineServer实例。

    单击Yarn服务的“实例”页签,勾选所有ResourceManager和TimelineServer实例,选择“更多 > 滚动重启实例”。

  4. (可选)根据业务需要,在业务低峰时滚动重启NodeManager。
  5. 实例重启完成后,删除HDFS上的存放历史任务信息的目录,例如“/tmp/hadoop-omm/yarn/timeline/generic-history/ApplicationHistoryDataRoot”

    1. 以客户端安装用户登录客户端安装目录,并配置环境变量。

      cd 客户端安装目录

      source bigdata_env

    2. 执行以下命令认证用户,未开启Kerberos认证的用户跳过该步骤。

      kinit 业务用户

    3. 执行以下命令删除HDFS上的相关目录。

      hdfs dfs -rm -r /tmp/hadoop-omm/yarn/timeline/generic-history/ApplicationHistoryDataRoot/