关闭群集./stop-all.sh
,然后调用hadoop namenode -format
后,我看到datanodes具有相同的磁盘空间,即空间尚未释放。Namenode格式不释放datanode磁盘空间
这是为什么?
关闭群集./stop-all.sh
,然后调用hadoop namenode -format
后,我看到datanodes具有相同的磁盘空间,即空间尚未释放。Namenode格式不释放datanode磁盘空间
这是为什么?
您可以格式化的NameNode
RMR的删除
Usage: hadoop fs -rmr URI [URI …]
递归版本之前手动删除数据节点的数据。 实施例:
hadoop fs -rmr /user/hadoop/dir
hadoop fs -rmr hdfs://nn.example.com/user/hadoop/dir
退出代码:
成功返回0和-1。
备选地
每当名称节点是数据节点应该被重新格式化。我在这里看到两种方法:
格式化Namenode不会格式化Datanode。
它只会格式化您的namenode的内容。即,您的namenode将不再知道您的数据所在的地方为 。另外namenode -format会为namenode分配一个新的名称空间ID
您将不得不在datanode中更改namespaceID以使您的datanode正常工作。 这将是在dfs /数据/电流/版本
有一个JIRA现在打开相同的建议格式Datanode以及格式Namenode。 HDFS-107
格式化名称节点,空间没有得到清理。人将不得不手动。
要做到这一点,
首先通过在正确的顺序调用./stop-all.sh
或./stop-mapred.sh
和./stop-dfs.sh
停止集群。
然后删除datanode的数据目录,即i。Ë或者通过dfs.data.dir
在hdfs-site.xml
或hadoop.tmp.dir
/DFS /数据
的选项指定的目录做-rmr
做了格式其实是最好的办法,除非你之前(在对方回答这个问题的一个指定)和我一样,不知不觉地格式化了namenode,然后意识到datanode空间没有得到清理;)