
# 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/*
      
   
   
   
   
 
