Hadoop:需要从所有数据节点中删除单个数据目录

时间:2014-09-22 13:56:49

标签: hadoop hdfs

我需要回收所有Hadoop HDFS数据节点的磁盘空间。它们每个都配置如下:

<property>
    <name>dfs.data.dir</name>
    <value>/d01,/d02,/d03</value>
</property>

我应该如何安全地从所有节点中删除/ d03文件系统并重新平衡它们?我已经尝试退役节点,删除目录和重新调试,但速度非常慢,我想知道是否有更好的方法?

1 个答案:

答案 0 :(得分:5)

修复实际上非常简单,并且从HDFS的用途知识开始。文件系统是容错的复制块的分布式集合。因此,只需从集群中的datanode中删除额外的目录并重新启动就足以导致重新同步和复制块。

监控NameNode日志和WebUI“欠复制块数”以识别流程何时完成。

对群集中的所有节点单独重复。

有几点需要注意:

确保

  • 通过检查,没有未复制的块: http://<name-node>:50070

  • 其他文件系统上有足够的磁盘空间,

  • 将复制级别设置为至少2,以确保群集可以容忍丢失块。理想情况下,安全性应为3或更高。