文档首页/ MapReduce服务 MRS/ 故障排除/ 使用HDFS/ HDFS容量达到100%导致上层服务HBase、Spark等不可用
更新时间:2023-11-18 GMT+08:00
分享

HDFS容量达到100%导致上层服务HBase、Spark等不可用

用户问题

集群的HDFS容量使用达到100%,HDFS服务状态为只读,导致上层服务HBase、Spark等上报服务不可用告警。

问题现象

HDFS使用容量100%,磁盘容量只使用85%左右,HDFS服务状态为只读,导致上层服务HBase、Spark等上报服务不可用。

原因分析

当前NodeManager和DataNode共数据盘使用,MRS默认预留15%的数据磁盘空间给非HDFS使用,可通过HDFS参数“dfs.datanode.du.reserved.percentage”修改百分比来控制具体的磁盘占比。

当HDFS磁盘使用100%之后,可通过降低“dfs.datanode.du.reserved.percentage”百分比来恢复业务,再进行磁盘扩容。

处理步骤

  1. 登录集群任意Master节点。
  2. 执行source /opt/client/bigdata_env命令,初始化环境变量。

    如果是安全集群,则需要执行kinit -kt <keytab file> <pricipal name> 进行认证。

  3. 执行hdfs dfs -put ./startDetail.log /tmp命令,测试HDFS写文件失败。

    19/05/12 10:07:32 WARN hdfs.DataStreamer: DataStreamer Exception
    org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /tmp/startDetail.log._COPYING_ could only be replicated to 0 nodes instead of minReplication (=1).  There are 3 datanode(s) running and no node(s) are excluded in this operation.

  4. 执行hdfs dfsadmin -report命令,检查HDFS使用容量,发现已经达到100%。

    Configured Capacity: 5389790579100 (4.90 TB)
    Present Capacity: 5067618628404 (4.61 TB)
    DFS Remaining: 133350196 (127.17 MB)
    DFS Used: 5067485278208 (4.61 TB)
    DFS Used%: 100.00%
    Under replicated blocks: 10
    Blocks with corrupt replicas: 0
    Missing blocks: 0
    Missing blocks (with replication factor 1): 0
    Pending deletion blocks: 0

  5. 当HDFS使用容量达到100%时,通过HDFS参数“dfs.datanode.du.reserved.percentage”修改百分比来控制具体的磁盘占比。

    1. 登录Manager进入服务配置页面。
      • MRS Manager界面操作入口:登录MRS Manager,依次选择 “服务管理 > HDFS> 配置”。
      • FusionInsight Manager界面操作入口:登录FusionInsight Manager,选择“集群 > 服务 >HDFS > 配置”。
    2. 选择“全部配置”,在搜索框中搜索“dfs.datanode.du.reserved.percentage”。
    3. 修改此参数的取值为“10”

  6. 修改完成后,扩容Core节点的磁盘个数。

相关文档