2017-12-18 162 views
0

我做了POC与的Hadoop 2.9.0作为分布式文件存储系统,因此已经建立了多节点群集安装有1个NameNode和重新启动后4复制因子为2的数据节点(包括主节点)。HDFS DataNode会不会收回的本地磁盘空间,如果是一会儿

现在,经过一系列复制操作后,我决定停止其中一个数据节点(slave2)。然后我使用hdfs dfs -rm -skipTrash命令清除了几GB的数据,而slave2仍然关闭。

后来我重新启动了我停止的slave2 datanode,它似乎没有清理在停机期间从hdfs中删除的数据块。

我继续添加/删除更多数据以查看它是否可能与主名称节点同步并执行本地清理以回收磁盘空间,但是它没有。

下面是每个节点上的数据消费:

SLAVE2:

[email protected]:~$ hdfs dfs -du -s -h/
4.5 G/
[email protected]:~$ du -sh /hadoop-tmp/ 
7.7G /hadoop-tmp/ [<-- notice extra 2.2 GB of data present on local disk] 

主:

[email protected]:~$ du -sh /hadoop-tmp/ 
4.6G /hadoop-tmp/ 
[email protected]:~$ hdfs dfs -du -s -h/
4.5 G/

SLAVE1:

[email protected]:~$ hdfs dfs -du -s -h/
4.5 G/
[email protected]:~$ du -sh /hadoop-tmp/ 
4.5G /hadoop-tmp/ 

slave3:

[email protected]:/$ du -sh /hadoop-tmp/ 
2.8G /hadoop-tmp/ 
[email protected]:/$ hdfs dfs -du -s -h/
4.5 G/

我想我在这里的问题是:“多少时间SLAVE2 datenode采取与主namenode的同步高达承认,它已经在本地存储已经从删除的数据块HDFS集群,因此需要清理它。如果这确实发生了加班那么我们就可以控制同步的是持续时间达“?

如果这不会又是什么从走下和数据节点回收磁盘空间的过程中发生的经过长达回来一会儿?

回答

0

你可能会考虑运行FSCK,以确定您的集群上不一致的块,然后采取必要的行动,以删除留下的块数据是否不再打算保留。

+0

我想这样做FSCK,但它也没有帮助,但是,我确实观察到,在一段时间内,空间得到释放(如果不是0字节,则至少达到几MB)。虽然不确定这是否是预期的行为与否。 – sactiw