记一次Configured Capacity: 0 (0 B)的解决
场景
最近hadoop集群新加了一个节点N,通过Ambari管理 一切正常。
过了两天发现,虽然集群每天要进几个G的数据(共8个节点),但节点N占用空间丝毫没有变化,显然没有进数据啊
日志
查看该节点日志,没有任何异常。
缩小问题范围
为了验证节点N没有进数据,我登录到该节点,并执行hdfs的put操作上传一个本地文件,在web页面中查看该文件的数据块分布。
正常情况,hdfs上传文件的时候会先存入本地节点然后存入远程机架。
结果发现并没有任何块分布到该节点上,确认了现在数据无法存入该节点。
查看DataNode运行情况以及磁盘占用
hdfs dfsadmin -report
结果如下
Configured Capacity: 8668275700736 (7.88 TB) Present Capacity: 8038240057165 (7.31 TB) DFS Remaining: 7494122223400 (6.82 TB) DFS Used: 544117833765 (506.75 GB) DFS Used%: 6.77% Under replicated blocks: 0 Blocks with corrupt replicas: 0 Missing blocks: 0 Missing blocks (with replication factor 1): 0 ------------------------------------------------- Live datanodes (6): Name: 192.168.11.18:50010 (node8.test.cn) Hostname: node8.kg.cn Decommission Status : Normal Configured Capacity: 0 (0 B) DFS Used: 32768 (32 KB) Non DFS Used: 0 (0 B) DFS Remaining: 0 (0 B) DFS Used%: 100.00% DFS Remaining%: 0.00% Configured Cache Capacity: 0 (0 B) Cache Used: 0 (0 B) Cache Remaining: 0 (0 B) Cache Used%: 100.00% Cache Remaining%: 0.00% Xceivers: 2 Last contact: Mon Oct 16 15:25:04 CST 2017
Name: 192.168.11.17:50010 (node7.test.cn)
……………………………………
其他数据正常,这里忽略
Configured Capacity成了0 这显然不对。
Configured Capacity = 磁盘可用空间 - Reserved Space
而 Reserved Space 由HDFS的配置hdfs-site.xml中的 dfs.datanode.du.reserved 设定(单位byte)
磁盘可用空间则不是整个节点的磁盘大小,而是datanode数据挂载目录的分配空间(datanode数据目录由 hdfs-site.xml中 dfs.datanode.data.dir设定)
参考 Details of the output: hdfs dfsadmin -report
我去查看了一下
datanode数据目录空间只分配了50G
但是 Reserved Space却统一配置的60G ,自然就没有给HDFS留出空间,也就无法存入数据了。
重新挂载磁盘,然后rebalance一下,问题解决。
问题原因的话,应该就是运维人员配置机器的时候出纰漏了。