hadoop - 一些数据节点在清除 HDFS 后仍然显示使用的 block 池

标签 hadoop hdfs hadoop2.7.3

Hadoop 版本:2.7.3 数据节点:32 区 block 大小:512m 复制:3

我使用命令清除了HDFS中的所有数据 hdfs dfs -rm -r/*

清除 HDFS 集群后,尽管 block 为零,但很少有数据节点仍显示使用的 block 池

hdfs webui的截图 enter image description here

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 删除是异步过程,但是 Block Pool Used 未设置为 0 的数据节点需要很长时间才能释放 block 。 任何人都可以帮我弄清楚,为什么在这些服务器上, block 删除速度很慢,或者由于正在使用 block 而导致的任何其他问题。

最佳答案

这有几个潜在的原因:

  1. 最近使用 HDFS Rolling Upgrade 升级了集群软件功能,升级尚未完成。在滚动升级期间,文件删除实际上并没有删除 DataNode 上的底层 block 文件。相反, block 文件得到维护,因此如果运算符(operator)选择回滚升级,集群的数据可以恢复到升级前的状态。因此,在滚动升级窗口期间,“已使用的 block 池”等 DataNode 指标继续显示已消耗的空间。检查滚动升级是否正在进行的一种简单方法是转到 NameNode Web UI。 “概述”选项卡将显示有关“滚动升级已开始”的消息。要完成升级,请运行 hdfs dfsadmin -rollingUpgrade。之后,DataNodes 将开始删除 block 文件(异步)。
  2. 集群的用户使用了 HDFS Snapshots .快照在创建快照时维护文件系统路径的状态。为了支持这一点,DataNodes 可能需要为以前删除的文件保留 block ,以防用户选择读取包含数据的旧快照。使用 -includeSnapshots 参数运行 hdfs fsck 可以显示是否有正在使用的快照。
  3. 由于某种 I/O 错误(磁盘故障、基础 block 文件的权限冲突),DataNode 无法删除 block 文件。这不太可能,但如果出现问题,DataNode 日志会显示更多信息。

关于hadoop - 一些数据节点在清除 HDFS 后仍然显示使用的 block 池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45157724/

相关文章:

shell - Amazon EMR:如何在参数中添加带有嵌入式shell脚本的Amazon EMR MapReduce/Hive/Spark步骤?

hadoop - Sqoop 导入 : composite primary key and textual primary key

java - MR 实现在 Hadoop 集群中不起作用

hadoop - Hadoop将本地示例复制到HDFS

java - 使用分布式缓存的Mapreduce程序(Java)

hadoop - 无法放置足够的副本:预期大小为1,但只能选择0个存储类型

hadoop - FSImage 读取效率高,但不适合进行小的增量更新

java - Hadoop 2.7.3 Java 运行时错误 - 找不到 core-site.xml

hadoop - datanode Hadoop 2.7.3 单节点报错(伪分布式)