Hadoop 添加删除Slave

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 - 等待,一直到安全模式结束。

作者:@小黑

你可能感兴趣的:(hadoop)