Hadoop 添加删除Slave
@(Hadoop)
在hdfs-site.xml文件中添加如下配置:
<property>
<name>dfs.hosts</name>
<value>/root/jiangyuande/hadoop/etc/hadoop/datanode-allow.list</value>
</property>
<property>
<name>dfs.hosts.exclude</name>
<value>/root/jiangyuande/hadoop/etc/hadoop/datanode-deny.list</value>
</property>
分别是允许Slave连接Namenode的列表和拒绝连接的列表。
删除节点
在对应目录下新建datanode-deny.list文件,内容为需要删除的Slave的主机名,一行一个。
执行命令重新读取配置:
hdfs dfsadmin -refreshNodes
使用
hdfs dfsadmin -report
可以看到该节点会处于Decommission Status : Decommission in progress的状态。
等待数据迁移完成之后,该状态变为Decommission Status : Decommissioned。
在该节点上停止进程:
hadoop-daemon.sh stop datanode
删除slaves文件中的对应主机名即可。
注意,副本数量要小于或者等于正常节点的数量,否则删除失败
【已解决】删除节点时,该节点长期处于Decommission Status : Decommission in progress状态,由于数据量太大,导致复制的时间很久,使用新集群测试时瞬间下线该节点
重新添加删除的节点
在slaves文件添加对应主机名,删除datanode-deny.list对应的主机名
执行命令:
hdfs dfsadmin -refreshNodes
在该节点上启动进程:
hadoop-daemon.sh start datanode
添加新节点
新机器配置完之后,slave和datanode-allow.list文件加入该主机名。
该节点上启动进程:
hadoop-daemon.sh start datanode
安全模式
hdfs dfsadmin -safemode [arg]
enter - 进入安全模式
leave - 强制NameNode离开安全模式
get - 返回安全模式是否开启的信息
wait - 等待,一直到安全模式结束。