HDFS退役旧数据节点
1.添加白名单和黑名单
白名单和黑名单是hadoop管理集群主机的一种机制。添加到白名单的主机节点,都允许访问NameNode,不在白名单的主机节点,都会被退出。添加到黑名单的主机节点,不允许访问NameNode,会在数据迁移后退出。
实际情况下,白名单用于确定允许访问NameNode的DataNode节点,内容配置一般与workers文件内容一致。 黑名单用于在集群运行过程中退役DataNode节点。
1)在NameNode节点的/opt/module/hadoop-3.1.3/etc/hadoop目录下分别创建whitelist 和blacklist文件
[hadoop@hadoop101 hadoop]$ pwd
[hadoop@hadoop101 hadoop]$ touch whitelist
[hadoop@hadoop101 hadoop]$ touch blacklist
[hadoop@hadoop101 hadoop]$ ll
在whitelist中添加如下主机名称,假如集群正常工作的节点为101,102,103,104
[hadoop@hadoop101 hadoop]$ vim whitelist
hadoop101
hadoop102
hadoop103
hadoop104
黑名单暂时为空。
2)在hdfs-site.xml配置文件中增加dfs.hosts和 dfs.hosts.exclude配置参数
[hadoop@hadoop101 hadoop]$ vim hdfs-site.xml
在文件中添加如下内容:
<!-- 白名单 -->
<property>
<name>dfs.hosts</name>
<value>/opt/module/hadoop-3.1.3/etc/hadoop/whitelist</value>
</property>
<!-- 黑名单 -->
<property>
<name>dfs.hosts.exclude</name>
<value>/opt/module/hadoop-3.1.3/etc/hadoop/blacklist</value>
</property>
3)分发配置文件whitelist,blacklist,hdfs-site.xml
[hadoop@hadoop101 hadoop]$ xsync /opt/module/hadoop-3.1.3/etc/hadoop/
4)重新启动集群
hadoop104单独启动
[hadoop@hadoop104 ~]$ hdfs --daemon start datanode
5)在web浏览器上查看目前正常工作的DataNode节点
2.黑名单退役
1)编辑/opt/module/hadoop-3.1.3/etc/hadoop目录下的blacklist文件
[hadoop@hadoop101 hadoop]$ vim blacklist
2)分发blacklist到所有节点
[hadoop@hadoop101 hadoop]$ xsync blacklist
3)刷新NameNode、刷新ResourceManager
[hadoop@hadoop101 hadoop]$ hdfs dfsadmin -refreshNodes
[hadoop@hadoop101 hadoop]$ yarn rmadmin -refreshNodes
4)检查Web浏览器,退役节点的状态为decommission in progress(退役中),说明数据节点正在复制块到其他节点,等待退役节点状态为decommissioned(所有块已经复制完成),停止该节点及节点资源管理器。注意:如果副本数是3,服役的节点小于等于3,是不能退役成功的,需要修改副本数后才能退役
(本机数据量很小,所以很快退役,一般机器会等待一段时间才可以完成退役)
关闭资源(hadoop104只有DataNode)
[hadoop@hadoop104 ~]$ hdfs --daemon stop datanode
如果有yarn节点也是需要关闭的