在删除60天以上的日志的常规日志修剪作业中,系统管理员将CDH从4.3升级到4.6,(我知道,我知道)...
通常,日志修剪作业会释放约40%的HDFS可用存储空间。但是,在升级过程中,数据节点关闭,重新启动,以及各种疯狂。
众所周知,HDFS收到了删除命令,因为HDFS文件/文件夹不再存在,但是磁盘利用率仍然保持不变。
我的问题是,HDFS是否可以从NameNode的元数据中删除文件,而实际上不执行DataNode之间的文件块删除操作,从而有效地孤立了文件块?
最佳答案
我认为namenode告诉datanode删除孤立的块,一旦它获得了它们所持有的块的报告,并且注意到其中的一些不属于任何文件。
如果您不希望删除这些块,则可以将系统置于安全模式,并尝试手动浏览磁盘并复制数据。没有自动执行此操作的方法,但是将来可能会添加列出孤立块的工具(如本JIRA中所建议)。
此外,您可以尝试使用Hadoop的fsck检查名称系统的运行状况。