退役数据节点

在hdfs的namenode所在结点的Hadoop的安装目录的etc/hadoop目录下创建一个dfs.hosts.exclude文件 填写dfs需要的退役的节点主机名

[root@node1 hadoop]# pwd
/opt/app/hadoop-2.8.5/etc/hadoop
[root@node1 hadoop]# touch dfs.hosts.exclude
[root@node1 hadoop]# vi dfs.hosts.exclude
new

在namenode所在节点的hdfs-site.xml文件中增加一个配置项dfs.hosts.exclude

<!--dfs.hosts.exculde文件代表namenode访问的黑名单  需要退役的数据节点
黑名单加入的数据节点如果也在dfs.hosts文件存在的话  不会立即退出 而是先把数据块转移到其他数据节点 然后再退役
-->
<property>
  <name>dfs.hosts.exclude</name>
  <value>/opt/app/hadoop-2.8.5/etc/hadoop/dfs.hosts.exclude</value>
</property>

同时在/opt/app/hadoop-2.8.5/etc/hadoop/dfs.hosts里删除服役节点

改为
node1

在namenode所在节点重新刷新一下节点信息,服役节点即可退役

hdfs dfsadmin -refreshNodes

如果hdfs上有一个文件有多个备份或HDFS设置的备份数大于退役之后的节点数量,3个备份,如果节点退役之后,少于备份个数节点,那么无法成功退役

# 修改备份数为1
[root@node1 hadoop]# hdfs dfs -setrep 1 /hadoop-2.8.5.tar.gz
Replication 1 set: /hadoop-2.8.5.tar.gz
[root@node1 hadoop]# hdfs dfsadmin -refreshNodes
Refresh nodes successful

节点退役成功

补充

1. 当修改完hdfs.site.xml文件、dfs.hosts.eclude文件后,先不删除dfs.hosts文件中的new,得到的效果是new节点前面加了扳手图标(Decommissioned),当达到重试时间后,new节点前面变成了关机的图标(Decommissioned & dead)

2. 当删除dfs.hosts文件中的new后,刷新节点,new节点彻底退役,消失

posted @ 2022-07-21 18:17  jsqup  阅读(30)  评论(0编辑  收藏  举报