
# ALM-14011 HDFS DataNode数据目录配置不合理（2.x及以前版本）
#### 告警解释
DataNode的配置参数"dfs.datanode.data.dir"指定了DataNode的数据目录。当所配置的目录路径无法创建、与系统关键目录使用同一磁盘或多个目录使用同一磁盘时，系统产生此告警。
当修改DataNode的数据目录合理后，重启该DataNode，告警清除。
#### 告警属性
| 告警ID  | 告警级别 | 可自动清除 |
|:---|:---|:---|
| 14011 | 严重   | 是     |
   
#### 告警参数
| 参数名称        | 参数含义       |
|:---|:---|
| ServiceName | 产生告警的服务名称。 |
| RoleName    | 产生告警的角色名称。 |
| HostName    | 产生告警的主机名。  |
   
#### 对系统的影响
如果将DataNode数据目录挂载在根目录等系统关键目录，长时间运行后会将根目录写满，导致系统故障。
不合理的DataNode数据目录配置，会造成HDFS的性能下降。
#### 可能原因
- DataNode数据目录创建失败。
- DataNode数据目录与系统关键目录（"/"或"/boot"）使用同一磁盘。
- DataNode数据目录中多个目录使用同一磁盘。
 
#### 处理步骤
1. 查看告警原因和产生告警的DataNode节点信息。 
   1. 在MRS集群详情页面，单击"告警管理"，在告警列表中单击此告警。
   
   2. 在"告警详情"区域，查看"告警原因"，可知产生该告警的原因。 通过"定位信息"的"HostName"，获取告警产生的DataNode节点的主机名。
   
   
   
   
2. 删除DataNode数据目录中与磁盘规划不符的目录。 
   1. 单击"组件管理 \> HDFS \> 实例"，在实例列表中单击产生告警的节点主机上的DataNode实例。
   
   2. 单击"实例配置"，查看DataNode数据目录配置参数"dfs.datanode.data.dir"的值。
   
   3. 查看所有的DataNode数据目录，是否有与磁盘规划不一致的目录。
      - 是，执行[2.d]。
      
      - 否，执行[2.g]。
       
   
   4. 修改该DataNode节点的配置参数"dfs.datanode.data.dir"的值，删除错误的路径。
   
   5. 单击"组件管理 \> HDFS \> 实例"，重启该DataNode实例。
   
   6. 检查该告警是否恢复。
      - 是，处理完毕。
      
      - 否，执行[2.g]。
       
   
   7. 登录到产生告警的DataNode的节点。
      - 如果告警原因为"DataNode数据目录创建失败"，执行[3.a]。
      
      - 如果告警原因为"DataNode数据目录与系统关键目录（/或/boot）使用同一磁盘"，执行[4.a]。
      
      - 如果告警原因为"DataNode数据目录中多个目录使用同一磁盘"，执行[5.a]。
       
   
   
   
   
3. 检查DataNode数据目录是否创建失败。 
   1. 执行以下命令切换用户：
      **sudo su - root**
      **su - omm**
      
   
   2. 使用**ls** 命令查看DataNode数据目录中的每个目录是否存在。
      - 是，执行[步骤 7]。
      
      - 否，执行[3.c]。
       
   
   3. 使用**mkdir** *数据目录* 命令创建该目录，查看是否可以创建成功。
      - 是，执行[6.a]。
      
      - 否，执行[3.d]。
       
   
   4. 单击"告警管理"，查看是否存在告警"ALM-12017 磁盘容量不足"。
      - 是，执行[3.e]。
      
      - 否，执行[3.f]。
       
   
   5. 参考[ALM-12017 磁盘容量不足（2.x及以前版本）](https://support.huaweicloud.com/usermanual-mrs/alm_12017.html)对磁盘容量问题进行处理，查看"ALM-12017 磁盘容量不足"告警是否消除。
      - 是，执行[3.c]。
      
      - 否，执行[步骤 7]。
       
   
   6. 查看**omm** 用户对该目录的所有上层目录是否有"rwx"或者"x"权限。（例如"/tmp/abc/"，"tmp"目录有"x"权限，"abc"目录有"rwx"权限。）
      - 是，执行[6.a]。
      
      - 否，执行[3.g]。
       
   
   7. 在**root** 用户下，执行**chmod u+rwx** *path* 或者**chmod u+x** *path* 命令给这些路径添加**omm** 用户的"rwx"或者"x"权限，然后执行[3.c]。
   
   
   
   
4. 检查DataNode数据目录是否与系统关键目录使用同一磁盘。 
   1. 分别使用**df**命令获取DataNode数据目录中的每个目录的磁盘挂载情况。
   
   2. 查看命令结果的磁盘挂载目录是否为系统关键目录（"/"或"/boot"）。
      - 是，执行[4.c]。
      
      - 否，执行[6.a]。
       
   
   3. 修改该DataNode节点的配置参数"dfs.datanode.data.dir"的值，删除与系统关键目录使用同一磁盘的目录。
   
   4. 继续执行[6.a]。
   
   
   
   
5. 检查DataNode数据目录中是否多个目录使用同一磁盘。 
   1. 分别使用**df**命令获取DataNode数据目录中每个目录的磁盘挂载情况。记录命令结果的磁盘挂载目录。
   
   2. 修改该DataNode节点的配置参数"dfs.datanode.data.dir"的值，对于其中磁盘挂载目录相同的DataNode目录，仅保留其中的一个目录，删除其他目录。
   
   3. 继续执行[6.a]。
   
   
   
   
6. 重启DataNode，检查告警是否消除。 
   1. 单击"组件管理 \> HDFS \> 实例"，重启该DataNode实例。
   
   2. 检查该告警是否恢复。
      - 是，处理完毕。
      
      - 否，执行[步骤 7]。
       
   
   
   
   
7. 收集故障信息。
   
   1. 在MRS Manager界面，单击"系统设置 \> 日志导出"。
   
   2. 请联系运维人员，并发送已收集的故障日志信息。
   
   
   
   
 
#### 参考信息
无。
