退役旧数据节点

1、需求

​ 假设hadoop14设备老旧,需要将hadoop14服务器退役,正式退役前需要自动将原有数据迁移。

2、知识点说明

将新的DataNode直接启动并加入Hadoop集群可能存在以下隐患:

  1. 安全性风险:直接启动新的DataNode可能导致安全漏洞,因为新的DataNode可能没有经过适当的身份验证和授权。这可能使得未经授权的用户获得对集群中数据的访问权限,从而导致数据泄露或滥用。
  2. 数据一致性问题:新的DataNode加入集群后,可能会导致数据一致性问题。如果新的DataNode上的数据与其他节点上的数据不一致,可能会引发数据丢失或数据不一致的情况。
  3. 性能问题:直接启动新的DataNode可能导致性能问题。新的DataNode可能无法正确配置和优化,从而影响整个集群的性能。

白名单黑名单是hadoop管理集群主机的一种机制。

    添加到白名单的主机节点,都允许访问NameNode,不在白名单的主机节点,都会被退出。添加到黑名单的主机节点,不允许访问NameNode,会在数据迁移后退出。

    实际情况下,白名单用于确定允许访问NameNode的DataNode节点,内容配置一般与workers文件内容一致。 黑名单用于在集群运行过程中退役DataNode节点。

3、配置白名单和黑名单

1)创建whitelist 和blacklist文件

在NameNode节点(hadoop11)的/opt/module/hadoop-3.1.3/etc/hadoop目录下分别创建whitelistblacklist文件

[hadoop@hadoop11 ~]# cd /opt/module/hadoop-3.1.3/etc/hadoop/
[hadoop@hadoop11 hadoop]# pwd
[hadoop@hadoop11 hadoop]# touch whitelist
[hadoop@hadoop11 hadoop]# touch blacklist

2) 添加白名单

在whitelist中添加如下主机名称

[root@hadoop11 hadoop]# vim whitelist
# 添加以下内容
hadoop11
hadoop12
hadoop13
hadoop14

暂时黑名单不添加内容

3)在hdfs-site.xml配置文件新增属性

增加dfs.hosts和 dfs.hosts.exclude配置参数,注意在</configuration>上新增

[root@hadoop11 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>

image-20231021215750400

4)分发配置文件

分发配置文件whitelist,blacklist,hdfs-site.xml

[hadoop@hadoop11 ~]$ my_rsync /opt/module/hadoop-3.1.3/etc/hadoop/
==========hadoop12================
sending incremental file list
hadoop/
hadoop/blacklist
hadoop/hdfs-site.xml
hadoop/whitelist

sent 1,921 bytes  received 115 bytes  1,357.33 bytes/sec
total size is 109,638  speedup is 12.85
==========hadoop13================
sending incremental file list
hadoop/
hadoop/blacklist
hadoop/hdfs-site.xml
hadoop/whitelist

sent 1,921 bytes  received 115 bytes  4,072.00 bytes/sec
total size is 109,638  speedup is 12.85

5)重新启动hdfs集群

[hadoop@hadoop11 hadoop-3.1.3]$ stop-dfs.sh
[hadoop@hadoop11 hadoop-3.1.3]$ start-dfs.sh

6)在web浏览器上查看DataNode节点

​ 目前正常工作的DN节点**:http://hadoop11:9870/dfshealth.html#tab-datanodeimage-20231021220937880

4、黑名单退役节点

1)编辑黑名单,新增hadoop14

暂时不操作白名单,当迁移完成后再移除。先处理黑名单

[hadoop@hadoop11 hadoop]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/blacklist
# 添加如下内容
hadoop14

2)分发blacklist到所有节点

[hadoop@hadoop11 etc]# my_rsync /opt/module/hadoop-3.1.3/etc/hadoop/
==========hadoop12================
sending incremental file list
hadoop/
hadoop/blacklist

sent 1,012 bytes  received 40 bytes  701.33 bytes/sec
total size is 109,648  speedup is 104.23
==========hadoop13================
sending incremental file list
hadoop/
hadoop/blacklist

sent 1,012 bytes  received 40 bytes  701.33 bytes/sec
total size is 109,648  speedup is 104.23

3)刷新NameNode、刷新ResourceManager

注意:refreshNodes 命令N为大写, 刷新ResourceManager,会执行数据迁移,确保yarn正常启动

[hadoop@hadoop11 etc]# hdfs dfsadmin -refreshNodes
Refresh nodes successful
[hadoop@hadoop11 etc]# yarn rmadmin -refreshNodes
# 刷新ResourceManager,会执行数据迁移
2023-08-20 11:45:17,700 INFO client.RMProxy: Connecting to ResourceManager at hadoop103/192.168.10.43:8033
....

4)在Web浏览器检查DataNode

退役节点的状态为decommission in progress(退役中),说明数据节点正在复制块到其他节点

image-20230820114636185

等待退役节点状态为decommissioned(所有块已经复制完成),停止该节点及节点资源管理器。注意:如果副本数是3,服役的节点小于等于3,是不能退役成功的,需要修改副本数后才能退役

6) 打开在线HDFS文件系统

查看之前有hadoop14上传的LICENSE.txt文件image-20231021222811506

注意:不允许白名单和黑名单中同时出现同一个主机名称,既然使用了黑名单blacklist成功退役了hadoop14节点,因此要将白名单whitelist里面的hadoop14去掉。

7)编辑白名单移除hadoop14

编辑/opt/module/hadoop-3.1.3/etc/hadoop目录下的blacklist文件

[hadoop@hadoop11 etc]# vim /opt/module/hadoop-3.1.3/etc/hadoop/whitelist
# 删除hadoop14,剩余如下内容
hadoop11
hadoop12
hadoop13

8) 刷新NameNode,访问HDFS监控

[hadoop@hadoop11 etc]# hdfs dfsadmin -refreshNodes
Refresh nodes successful
[hadoop@hadoop11 etc]# yarn rmadmin -refreshNodes

访问:http://hadoop11:9870/dfshealth.html#tab-datanodeimage-20231021223634891

最后修改:2024 年 01 月 24 日
咱们谁跟谁,用不着~