我需要从所有hadoop hdfs数据节点回收磁盘空间。它们的配置如下:
<property> <name>dfs.data.dir</name> <value>/d01,/d02,/d03</value> </property>
我应该如何从所有节点安全地删除/d03文件系统并重新平衡它们?我尝试过停用一个节点,删除目录,然后重新调试,但是速度非常慢,我想知道是否有更好的方法?
k97glaaz1#
修复实际上非常简单,并且遵循hdfs的用途。文件系统是容错的复制块的分布式集合。因此,只需从集群中的datanode中删除额外的目录并重新启动就足以导致块的重新同步和复制。监视namenode日志和webui“未复制的块数”,以确定进程何时完成。对群集中的所有节点分别重复。几个注意事项:确保通过检查,不存在复制不足的块: http://<name-node>:50070 ,在其他文件系统中有足够的磁盘空间,复制级别至少设置为2,以确保集群能够容忍数据块丢失。理想情况下,这应该是三个或更高的安全。
http://<name-node>:50070
1条答案
按热度按时间k97glaaz1#
修复实际上非常简单,并且遵循hdfs的用途。文件系统是容错的复制块的分布式集合。因此,只需从集群中的datanode中删除额外的目录并重新启动就足以导致块的重新同步和复制。
监视namenode日志和webui“未复制的块数”,以确定进程何时完成。
对群集中的所有节点分别重复。
几个注意事项:
确保
通过检查,不存在复制不足的块:
http://<name-node>:50070
,在其他文件系统中有足够的磁盘空间,
复制级别至少设置为2,以确保集群能够容忍数据块丢失。理想情况下,这应该是三个或更高的安全。