其实网上有很多了,但是说的都不详细。今天我自己测试了一次,把测试结果发布出来:
首先,你的集群肯定是在运行中。并且已经退出的安全模式。
在HADOOP_HOME下新建一个文件,例如slaves.ex,在里面添加需要退服的名称节点的IP地址,一行一个。
然后配置HADOOP_HOME/conf下的hdfs-site.xml添加dfs.host.exclude属性,在value值下写slaves.ex。
然后到HADOOP_HOME/bin目录下,执行hadoop dfsadmin -refreshNodes,然后可以在web页面或是使用hadoop dfsadmin -report,可以看到你设置要退服的这个节点的Decommission Status : Decommissioned 这样就开始了,你可以刷新页面,查看其它节点,在增加,OK,等完事儿了就行了。
等该节点退服完毕,你再刷新就可以看到,它的节点数就会变成现在的节点数了
注意:
1.首先保证其它节点的硬盘未满,能够放得下需要退服的节点的数据量
2.为了防止下次启动会出现问题,建议在退服节点完毕以后,删除HADOOP_HOME/conf/slaves中已经退服的点节名称。
关于hadoop的一些命令,大家可以参考
http://hadoop.apache.org/common/docs/r0.21.0/cn/commands_manual.html#dfsadmin