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”百分比来恢复业务,再进行磁盘扩容。
处理步骤
- 登录集群任意Master节点。
- 执行source /opt/client/bigdata_env命令,初始化环境变量。
如果是安全集群,则需要执行kinit -kt <keytab file> <pricipal name> 进行认证。
- 执行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.
- 执行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
- 当HDFS使用容量达到100%时,通过HDFS参数“dfs.datanode.du.reserved.percentage”修改百分比来控制具体的磁盘占比。
- 登录Manager进入服务配置页面。
- MRS Manager界面操作入口:登录MRS Manager,依次选择 “服务管理 > HDFS> 配置”。
- FusionInsight Manager界面操作入口:登录FusionInsight Manager,选择“集群 > 服务 >HDFS > 配置”。
- 选择“全部配置”,在搜索框中搜索“dfs.datanode.du.reserved.percentage”。
- 修改此参数的取值为“10”。
- 登录Manager进入服务配置页面。
- 修改完成后,扩容Core节点的磁盘个数。