一些datanode在清除hdfs后仍然显示使用的块池

uubf1zoe  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(770)

hadoop版本:2.7.3数据节点:32块大小:512m复制:3
我用命令清除了hdfs中的所有数据 hdfs dfs -rm -r /* 清除hdfs集群后,很少有数据节点仍然显示 Block pool used ,尽管块为零。
hdfs-webui的屏幕截图

输出 hdfs fsck / 具体如下

Connecting to namenode via http://ip-10-0-2-7:50070/fsck?ugi=ubuntu&path=%2F
FSCK started by ubuntu (auth:SIMPLE) from /10.0.2.7 for path / at Tue Jul 18 04:34:19 UTC 2017
Status: HEALTHY
 Total size:    0 B
 Total dirs:    1
 Total files:   0
 Total symlinks:        0
 Total blocks (validated):  0
 Minimally replicated blocks:   0
 Over-replicated blocks:    0
 Under-replicated blocks:   0
 Mis-replicated blocks:     0
 Default replication factor:    3
 Average block replication: 0.0
 Corrupt blocks:        0
 Missing replicas:      0
 Number of data-nodes:      32
 Number of racks:       1
FSCK ended at Tue Jul 18 04:34:19 UTC 2017 in 1 milliseconds
The filesystem under path '/' is HEALTHY

我知道块删除是异步过程,但是 Block Pool Used 未设置为0,释放块需要大量时间。有没有人能帮我弄清楚,为什么在那些服务器上,块删除速度慢,或者其他问题,因为这些块正在被使用。

ubof19bj

ubof19bj1#

这有几个潜在的原因:
最近使用hdfs滚动升级功能升级了集群软件,升级尚未完成。在滚动升级期间,文件删除实际上不会删除datanode上的底层块文件。相反,会维护块文件,这样,如果操作员选择回滚升级,集群的数据就可以恢复到升级前的状态。因此,在滚动升级窗口期间,datanode度量(如“block pool used”)继续显示已消耗的空间。检查滚动升级是否正在进行的一个简单方法是转到namenodewebui。overview选项卡将显示一条关于“rolling upgrade started”的消息。要完成升级,请运行 hdfs dfsadmin -rollingUpgrade . 之后,datanodes将开始删除块文件(异步)。
集群的用户使用了hdfs快照。快照维护创建快照时文件系统路径的状态。为了支持这一点,datanodes可能需要为先前删除的文件保留块,以防用户选择读取包含数据的旧快照。跑步 hdfs fsck-includeSnapshots 参数可以显示是否有正在使用的快照。
由于某种类型的i/o错误(磁盘故障、对底层块文件的权限冲突),datanode无法删除块文件。这不太可能,但是如果有问题,那么datanode日志将显示更多信息。

相关问题