hdfs清理数据后,Blocks Pending Deletion持续增长导致磁盘不释放问题记录

今天收到测试环境磁盘资源告警,发现hdfs占用磁盘过多,于是清理了一波,删除了很多大文件

然后奇葩的事情发生了,清理之后磁盘占用不仅没用变少,反而还变多了

但是使用hdfs dfs -du -s -h /命令查看,数据确实是清理了的,排除回收站问题

通过hdfs ui观察,发现Number of Blocks Pending Deletion变得好大,而且还在持续增长
一般来说这个值变大是因为突然删除了大量数据导致,hdfs通过命令删除文件时,namenode只是把目录入口删掉,然后把需要删除的数据库记录到pending deletion blocks列表,当下一次datanode向namenode发送心跳的时候,namenode再把删除命令和这个列表发送到datanode。

但是照理来说应该时变大之后再慢慢变小才对,为何还会持续增长呢

然后查资料的时候发现一个参数设置:dfs.namenode.startup.delay.block.deletion.sec
官网文档释义如下:

The delay in seconds at which we will pause the blocks deletion after Namenode startup. By default it's disabled. In the case a directory has large number of directories and files are deleted, suggested delay is one hour to give the administrator enough time to notice large number of pending deletion blocks and take corrective action.

大概意思时说namenode重启后的一段时间,暂停数据块的删除
然后我们这个值配置的3600,也就是重启后1小时内不会进行数据块删除
好巧不巧,我删除数据之前正好重启了namenode。。。

于是把这个配置改为0,再重启hdfs,问题解决

参考链接:
https://blog.csdn.net/hejiangtju/article/details/80152341
https://hadoop.apache.org/docs/r3.2.2/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

你可能感兴趣的:(#,hdfs,hdfs,hadoop,大数据)