我需要从我所有的Hadoop HDFS数据节点回收磁盘空间.它们每个都配置如下:
dfs.data.dir /d01,/d02,/d03
我应该如何安全地从所有节点中删除/ d03文件系统并重新平衡它们?我已经尝试退役节点,删除目录和重新调试,但它很慢,我想知道是否有更好的方法?
修复实际上非常简单,并且可以从HDFS的用途中了解.文件系统是容错的复制块的分布式集合.因此,只需从群集中的datanode中删除额外的目录并重新启动就足以导致块的重新同步和复制发生.
监视NameNode日志和WebUI"欠复制块数"以识别进程何时完成.
对群集中的所有节点单独重复.
几点需要注意:
确保这件事
通过检查http://<name-node>:50070
,没有未复制的块:
其他文件系统有足够的磁盘空间,
复制级别设置为至少2,以确保群集可以容忍块丢失.理想情况下,安全性应为3或更高.