1.namenode 添加节点黑名单列表,将下线节点写入列表
[root@hdp01 local]# cd hadoop/etc/hadoop/
[root@hdp01 hadoop]# vim hdfs-site.xml
<!-- 添加黑名单排除指定节点在集群之外,如果列表为空则表示不禁止任何机器,建议在集群创建时就添加该配置,否则后续需要重启namenode才能重新加载 -->
<!-- 注意:如果副本数是3,服役的节点小于等于3,是不能退役成功的,需要修改副本数后才能退役 -->
<property>
<name>dfs.hosts.exclude</name>
<value>/usr/local/hadoop/etc/hadoop/excludes</value>
</property>
[root@hdp01 hadoop]# vim /usr/local/hadoop/etc/hadoop/excludes #添加需要下线的主机
hdp04.dialev.com
[root@hdp01 hadoop]# scp excludes hdfs-site.xml 192.168.1.132:$PWD #同步配置,下线节点可以忽略
2.重启集群或刷新集群
#如果dfs.hosts.exclude没有提前配置需要重启集群,否则此步骤可以跳过
[root@hdp01 hadoop]# stop-dfs.sh
[root@hdp01 hadoop]# start-dfs.sh
#如果dfs.hosts.exclude配置已经提前存在,可以直接刷新配置即可,命令如下
hdfs dfsadmin -refreshNodes
3.检查集群状态
[root@hdp01 logs]# jps
36132 NameNode
36644 Jps
36295 DataNode
[root@hdp01 logs]# hdfs dfsadmin -report |grep -E '^Name|^Decommission' #可以看到第四台服务器的状态处于退役,也可以访问namenode UI http: //192.168.1.131:50070/dfshealth.html#tab-datanode
Name: 192.168.1.131:9866 (hdp01.dialev.com)
Decommission Status : Normal
Name: 192.168.1.132:9866 (hdp02.dialev.com)
Decommission Status : Normal
Name: 192.168.1.133:9866 (hdp03.dialev.com)
Decommission Status : Normal
Name: 192.168.1.134:9866 (hdp04.dialev.com)
Decommission Status : Decommissioned ##如果节点数据比较多从Decommissioning状态到Decommissioned可能需要一段时间
4.手动关闭下线节点DataNode进程
hdfs --daemon stop datanode
5.DataNode负载均衡
#如果需要可以对已有的HDFS集群进行负载均衡服务。
hdfs balancer -threshold 5
|