- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
这是最近在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 %
我很困惑,非dfs Used占用了一半以上的容量,
我认为这意味着一半的 hadoop 存储被浪费了
在浪费了无意义的时间搜索之后,我只是格式化了namenode,然后从头开始。
然后我从本地复制了一个巨大的文本文件(大约19GB)到HDFS(成功)。
现在 UI 显示
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 %
复制前,DFS Used和Non DFS Used均为0。
因为使用的 DFS 大约是原始文本文件大小的两倍,而且我配置了 2 个副本,
我猜 DFS Used 是由 original 和 meta 的 2 个副本组成的。
但我仍然不知道 Non DFS Used 从何而来,为什么它占用的容量比 DFS Used 多。
发生了什么事?我弄错了吗?
最佳答案
“未使用 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(总计)- 30GB(保留)- 10GB(使用 DFS)- 50GB(剩余) = 10 GB
所以这实际上意味着,您最初配置为为非 dfs 使用保留 30G,为 HDFS 使用保留 70G。然而,事实证明非dfs使用超过了30G预留,吃掉了本应属于HDFS的10GB空间!
术语“未使用 DFS”确实应该重命名为类似“非 dfs 使用占用了多少已配置的 DFS 容量”
并且应该停止尝试弄清楚为什么非 dfs 在 hadoop 中的使用率如此之高。
一个有用的命令是 lsof | grep delete
,这将帮助您识别那些已被删除的打开文件。有时,Hadoop 进程(如 hive、yarn、mapred 和 hdfs)可能会引用那些已删除的文件。而这些引用会占用磁盘空间。
还有 du -hsx * |排序-rh | head -10
帮助列出前十名最大的文件夹。
关于hadoop - Non DFS Used 到底是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18477983/
这对你们来说可能很简单,但由于我是java新手,所以我想知道实际上什么是 接下来的部分会发生什么? if (args.length > 0) { file = args[0]; } publi
在我的 View Controller 中,我将 UITapGestureRecognizer 添加到 self.view。我在 self.view 之上添加了一个小 View 。当我点击小 View
我今天尝试从 Obj-C 开始并转到 Swift,我正在阅读文档。我试图在 Swift 中创建一个简单的 IBOutlet,但它不断给我这些错误。 View Controller 没有初始化器 req
我正在尝试使用 VIM 完成(字典和当前缓冲区),但我遇到了问题?和 !在方法名称的末尾。我能以某种方式向 vim 解释方法名称(基本上是单词)最后只能有它,而且只有一个,即 method_name
我是一名优秀的程序员,十分优秀!