在 hadoop 中释放“未使用 DFS”的空间
Posted
技术标签:
【中文标题】在 hadoop 中释放“未使用 DFS”的空间【英文标题】:Freeing up "Non-DFS used" space in hadoop 【发布时间】:2015-07-28 10:19:27 【问题描述】:我正在尝试将我们的数据加载到 hadoop hdfs 中。经过一些测试运行后,当检查 hadoop web ui 时,我意识到标题“Non-DFS used”下消耗了很多空间。事实上,“Non-DFS used”不仅仅是“DFS used”。因此,几乎一半的集群都被非 DFS 数据消耗。
即使在重新格式化 namenode 并重新启动后,这个“非 DFS”空间也没有被释放。
我也无法找到存储此“非 DFS”数据的目录,因此我可以手动删除这些文件。
我在网上阅读了许多被困在同一问题上的人的帖子,但没有一个得到明确的答案。
清空这个“非DFS”空间有那么难吗?还是我不应该删除它?我怎样才能释放这个空间?
【问题讨论】:
【参考方案1】:在HDFS中,Non-DFS是datanode中未被hdfs数据占用的存储。
查看数据节点hdfs-site.xml
,属性中设置的目录 dfs.data.dir 或 dfs.datanode.data.dir 将用于 DFS。数据节点中所有其他使用的存储将被视为非 DFS 存储。
您可以通过从 datanode 机器上删除任何不需要的文件来释放它,例如 hadoop 日志、任何与 hadoop 无关的文件(磁盘上的其他信息)等。使用任何 hadoop 命令都无法做到这一点。
使用的非 DFS 使用以下公式计算,
使用的非 DFS = (总磁盘空间 - 保留空间) - 剩余空间 - 使用的 DFS
在下面找到类似的问题,
What exactly Non DFS Used means?
【讨论】:
好的,这个数据是什么?日志文件?还有什么被视为非 DFS 数据的吗?所以我应该删除namenode和datanode中的所有日志。另外我只是猜测,如果 Hadoop Web UI 可以说有 19.6GB 的“非 DFS”数据,那么它是在以某种特定的方式测量它,也就是说,它必须在某些目录中测量它? ? 数据节点存储在哪个磁盘上,检查该磁盘是否有其他文件。它可能是文件系统(操作系统文件)、日志、其他信息等。它在公式中给出的所有数据节点中测量。【参考方案2】:我有一段时间面临同样的问题,我的非 DFS 使用量已达到约 13TB!!!我为 YARN、TEZ、MR2 等尝试了许多重新配置,但没有成功。相反,使用量一直在增加,我的集群使用率几乎达到了 90%。这反过来又导致在运行我的脚本和重新尝试(失败)配置系统时出现很多顶点故障。
虽然对我有用(有趣的故事),只是简单地重新启动 Ambari 中的所有数据节点!!!它将非 DFS 使用量从 13TB 减少到略高于 6TB。我的资源管理器已经运行了大约 160 天,我猜测重新启动数据节点可能刚刚清除了日志文件。
【讨论】:
我面临同样的问题。除了重启HDFS,有什么解决办法吗?以上是关于在 hadoop 中释放“未使用 DFS”的空间的主要内容,如果未能解决你的问题,请参考以下文章