这是我最近在Web UI上看到的
Configured Capacity : 232.5 GB
DFS Used : 112.44 GB
Non DFS Used : 119.46 GB
DFS Remaining : 613.88 MB
DFS Used% : 48.36 %
DFS Remaining% : 0.26 %
Run Code Online (Sandbox Code Playgroud)
而且我很困惑,非dfs Used占用了一半以上的容量,
我认为这意味着hadoop存储的一半被浪费了
在花费无意义的时间搜索之后,我只是格式化了namenode,并从头开始.
然后我从本地复制了一个巨大的文本文件(大约19千兆字节)到HDFS(成功).
现在用户界面说
Configured Capacity : 232.5 GB
DFS Used : 38.52 GB
Non DFS Used : 45.35 GB
DFS Remaining : 148.62 GB
DFS Used% : 16.57 %
DFS Remaining% : 63.92 %
Run Code Online (Sandbox Code Playgroud)
在复制之前,DFS Used和Non DFS Used都是0.
因为DFS Used大约是原始文本文件大小的两倍,我配置了2个副本,
我猜DFS Used由2份原始和元组成.
但是我仍然不知道非DFS使用的来源是什么,为什么这比DFS使用的占用了更多的容量.
发生了什么事?我弄错了吗?
Tim*_*Fei 34
"非DFS使用"通过以下公式计算:
非DFS已使用=已配置容量 - 剩余空间 - 已使用DFS
至少对我来说,它仍然令人困惑.
因为已 配置容量=总磁盘空间 - 保留空间.
所以非DFS使用=(总磁盘空间 - 保留空间) - 剩余空间 - 使用DFS
我们来举个例子吧.假设我有100 GB磁盘,并将保留空间(dfs.datanode.du.reserved)设置为30 GB.
在磁盘中,系统和其他文件最多使用40 GB,DFS使用10 GB.如果运行df -h,您将看到该磁盘卷的可用空间为50GB.
在HDFS Web UI中,它将显示
非DFS使用= 100GB(总计) - 30 GB(保留) - 10 GB(使用DFS) - 50 GB(剩余)= 10 GB
所以它实际上意味着,您最初配置为为非dfs使用保留30G,为HDFS保留70G.然而,事实证明非dfs使用超过30G预留并占用10 GB空间,这应该属于HDFS!
术语"非DFS使用"实际上应该重命名为"非dfs使用占用了多少DFS容量"
并且应该停止尝试弄清楚为什么非dfs在hadoop中使用如此之高.
一个有用的命令是lsof | grep delete
,它将帮助您识别已删除的那些打开文件.有时,Hadoop进程(如hive,yarn,mapred和hdfs)可能会引用已经删除的文件.而这些引用将占用磁盘空间.
还du -hsx * | sort -rh | head -10
有助于列出十大文件夹.
非DFS使用的是不在的数据节点的文件系统中的任何数据dfs.data.dirs
.这将包括日志文件,mapreduce shuffle输出和数据文件的本地副本(如果将它们放在数据节点上).使用du
或类似工具来查看占用文件系统空间的内容.
归档时间: |
|
查看次数: |
21632 次 |
最近记录: |