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