hadoop移除节点的优雅方式

step 1:使用hdfs-site.xml的配置项,排除节点。

<property>
<name>dfs.hosts.exclude</name>
<value>/your_path/excludes</value>
</property>

在excludes文件中添加要排除的节点主机名,一行一个

step 2:刷新datanode

hdfs dfsadmin -refreshNodes
hdfs dfsadmin -report

在Hadoop站点上很快就能看到Decommission正在进行,此时NameNode会检查并将数据复制到其它节点上以恢复副本数(要移除的节点上的数据不会被删除,如果数据比较敏感,要手动删除它们)。通过命令也可以查看状态。

step 3:等状态变成Decommissioned后就可以关闭这个节点了,可在要移除的节点上运行相应的关闭命令。

hadoop-daemon.sh stop datanode

几分钟后,节点将从Decommissioned进入Dead状态。

step 4:从NameNode的excludes文件及slaves文件、hosts文件中去掉已经移除的主机名。

posted @ 2019-02-28 18:43  PigeonNoir  阅读(954)  评论(0编辑  收藏  举报