在NameNode所在的机器上的配置文件hdfs-site.xml中增加"下线NameNode列表"配置:
这块直接往配置目录的excloude文件写入内容,避免修改hdfs配置文件。
<property>
<!-- 下线dataNode列表 -->
<name>dfs.hosts.exclude</name>
<value>/data/home/hadoop/etc/hadoop/dfs.exclude</value>
</property>
在dfs.exclude文件中增加下线节点的hostName(回车换行,逗号分隔有时候无法识别)
node5
node6
node5,node6为需要下线的DataNode
然后在hdfs所在的机器上执行如下的命令:
hdfs dfsadmin -refreshNodes
状态确认:
#执行如下命令:
hadoop dfsadmin –report

列表中没有需要下线的节点,证明下线成功,这块需要稳妥的确认完成方式。
Decommission In Progress :表示副本迁移中
Decommission:副本迁移完成
当状态变成Decommission表示副本迁移完成即可进行下一步操作
在下线节点上停止DataNode
hadoop-daemon.sh stop datanode
刷新集群状态:
hdfs dfsadmin -refreshNodes

网友评论