Hadoop提供了Decommission的特性,可以按照以下步骤来操作:
1. 在hadoop的conf目录下生成一个excludes的文件,写上需要remove的节点ip
一个节点一行,注意要写ip,不能写Hostname,如:
10.10.70.73
2. 在hdfs-site.xml中增加配置:
<property>
<name>dfs.hosts.exclude</name>
<value>/opt/sohuhadoop/conf/excludes</value>
<final>true</final>
</property>
3. 在mapred-site.xml中增加配置:
<property>
<name>mapred.hosts.exclude</name>
<value>/opt/sohuhadoop/conf/excludes</value>
<final>true</final>
</property>
4. 在master上执行如下命令
hadoop dfsadmin -refreshNodes
它会在后台进行Block块的移动从移出的Nodes上移动到其它的Nodes上面
5. 通过以下2种方式查看Decommission的状态:
hadoop dfsadmin -report
http://<ip>:50070/dfsnodelist.jsp
正在执行Decommission,会显示:
Decommission Status : Decommission in progress
执行完毕后,会显示:
Decommission Status : Decommissioned
6、移除配置
(1)、从slaves文件中移除节点:
即将被移除的主机名从slaves文件中删除。
(2)、从/opt/sohuhadoop/conf/excludes中移除节点名。
7、手动停掉tasktracker
由于tasktracker不能自动退役,需要手动kill掉。