退役旧数据节点
目标:掌握HDFS在集群中删除掉无效节点的步骤

第一步:创建dfs.hosts.exclude配置文件

在namenod的cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop目录下创建dfs.hosts.exclude文件,并添加需要退役的主机名称
node01执行以下命令

cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
touch dfs.hosts.exclude
vim dfs.hosts.exclude

node04

第二步:编辑namenode所在机器的hdfs-site.xml
编辑namenode所在的机器的hdfs-site.xml配置文件,添加以下配置
node01执行以下命令

cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
vim hdfs-site.xml

<property>
                <name>dfs.hosts.exclude</name>
                <value>/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/dfs.hosts.exclude</value>
        </property>

第三步:刷新namenode,刷新resourceManager
在namenode所在的机器执行以下命令,刷新namenode,刷新resourceManager

hdfs dfsadmin -refreshNodes
yarn rmadmin -refreshNodes

第四步:查看web浏览界面

浏览器访问
http://node01:50070/dfshealth.html#tab-datanode

大数据成长之路-- hadoop集群的部署(4)_Hadoop

第五步:节点退役完成,停止该节点进程
等待退役节点状态为decommissioned(所有块已经复制完成),停止该节点及节点资源管理器。注意:如果副本数是3,服役的节点小于等于3,是不能退役成功的,需要修改副本数后才能退役。·
大数据成长之路-- hadoop集群的部署(4)_Hadoop_02

node01执行以下命令,停止该节点进程

cd /export/servers/hadoop-2.6.0-cdh5.14.0
sbin/hadoop-daemon.sh stop datanode
sbin/yarn-daemon.sh stop nodemanager

第六步:从include文件中删除退役节点
namenode所在节点也就是node01执行以下命令删除退役节点

cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
vim dfs.ho

node01
node02
node03

namenode所在节点也就是node01执行以下命令刷新namenode和resourceManager

hdfs dfsadmin -refreshNodes
yarn rmadmin -refreshNodes

第七步:从namenode的slave文件中删除退役节点
namenode所在机器也就是node01执行以下命令从slaves文件中删除退役节点

cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
vim slaves

node01
node02
node03

第八步:如果数据负载不均衡,执行以下命令进行均衡负载
node01执行以下命令进行均衡负载

cd /export/servers/hadoop-2.6.0-cdh5.14.0/
sbin/start-balancer.sh