0443-CM上HDFS容量显示与实际命令不一致问题分析

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
Fayson的github:
https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢

1.问题描述


通过Cloudera Manager看到HDFS的容量使用显示为103.9GB

通过HDFS的50070界面查看到HDFS的容量使用情况为41.63GB

使用hadoop fs -du –h /命令查看HDFS的使用情况,HDFS的使用为41.63GB

疑问:为什么Cloudera Manager上显示HDFS空间的使用量会比HDFS真实使用量大很多?

2.问题分析


在Cloudera Manager上鼠标停留在HDFS容量配置上会显示容量使用说明,如下图所示:

CM上显示HDFS配置容量由两部分组成DFS使用的空间和非DFS使用的空间两部分组成。

接下来我们再看看HDFS的50070界面的统计信息可以看到有DFS Used和Non DFS Used两个信息。

将DFS Used和Non DFS Used两个数据相加刚好与Cloudera Manager上显示的配置容量103.9GB一致。

问题又来了“Non DFS Used”这一部分空间是什么?“Non DFS Used”是如何计算的?

3.Non DFS Used说明


这里Fayson拿集群的一个节点cdh03来说明,如下是cdh03节点磁盘挂载信息,/data/disk1盘是HDFS配置的数据目录。

1.在HDFS的DataNode配置中“dfs.datanode.du.reserved”用来为HDFS的数据盘预留一定的空间,默认为10GB

那这样HDFS对该盘的使用空间为100GB - 9.99GB=90GB

2.使用hadoop dfsadmin -report命令查看HDFS空间各个节点的使用情况

如上截图为cdh03.fayson.com节点DFS使用报告,包含了DFS的总容量,已使用容量,可用容量以及“Non DFS Used”。

3.Non DFS Used的计算方式大概为

磁盘总容量 - 节点预留容量(dfs.datanode.du.reserved)- DFS Used – DFS Remaining即为“Non DFS Used”

100GB - 10GB - 13.88GB - 57.55GB ≈ 18.03GB

所以根据以上得出结论,当我们为数据盘预留了10GB给系统或其他非HDFS文件的存储空间,那么DFS的使用空间就为90GB,但是非HDFS文件占用空间超过10GB则会占用DFS配置的90GB空间,所以“Non DFS Used”就是占用DFS容量的那部分空间。

4.总结


在Cloudera Manager中显示的HDFS容量配置分为了两个部分DFS使用的空间和非DFS使用的空间。

其中的“Non DFS Used”空间即为DN节点每块盘中在排除预留空间后非HDFS文件占用DFS容量的那部分空间(如kudu数据、Kafka数据、用户自己的数据等)。

参考:https://stackoverflow.com/questions/18477983/what-exactly-non-dfs-used-means

提示:代码块部分可以左右滑动查看噢
为天地立心,为生民立命,为往圣继绝学,为万世开太平。
温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

发布了381 篇原创文章 · 获赞 15 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/Hadoop_SC/article/details/104350388