退役数据节点
在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节点彻底退役,消失
本文来自博客园,作者:jsqup,转载请注明原文链接:https://www.cnblogs.com/jsqup/p/16502996.html