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

Hadoop:需要从所有数据节点中删除单个数据目录,hadoop,hdfs,Hadoop,Hdfs,我需要从所有Hadoop HDFS数据节点回收磁盘空间。它们的配置如下所示: <property> <name>dfs.data.dir</name> <value>/d01,/d02,/d03</value> </property> dfs.data.dir /d01,/d02,/d03 我应该如何从所有节点安全地删除/d03文件系统并重新平衡它们?我曾尝试过停用节点、删除目录和重新调试,但速度非常慢

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

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

dfs.data.dir
/d01,/d02,/d03

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

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

监视NameNode日志和WebUI“未复制块的数量”,以确定流程何时完成

对群集中的所有节点分别重复此步骤

几点注意事项:

确保

  • 通过检查,不存在复制不足的块:
    http://:50070

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

  • 复制级别设置为至少2,以确保群集能够容忍数据块丢失。理想情况下,为安全起见,该值应为3或更高


我自己解决了这个问题,只是对Hadoop的工作原理有了更好的(或基本的)了解。注意:我们正在使用Cloudera,Cloudera Manager建议在更改一台主机的配置后重新启动整个集群。您不需要重新启动整个集群。只需在更改的节点上重新启动HDFS。