hadoop集群动态添加删除节点

动态添加,在不重启集群的情况下添加节点,对集群进行扩容


一.添加节点

1.配置新节点与namenode之间的ssh免密登陆

2.在主节点的 hosts添加主机名称,并且把该文件复制到集群中的其他节点上。

3.在Namenode节点的slaves文件中添加新节点的主机名或ip(用于下次重启的时候使用)

4.在新节点中启动进程:

sbin/hadoop-daemon.sh start datanode

sbin/yarn-daemon.sh start nodemanager

2.在主节点刷新

hdfs dfsadmin -refreshNodes

3.查看节点状态

hdfs dfsadmin -report

5.在datanode中启动:start-balancer.sh 均衡当前的hdfs块


二.删除节点

  1. 在主节点的配置文件目录里新建datanode-deny.list文件,并添加需要退役的主机名

  2. 在hdfs-site.xml文件中配置:

<property>
    <name>dfs.hosts.exclude</name>  
    <value>/usr/local/src/hadoop/etc/hadoop/datanode-deny.list</value>    
</property>
  1. 在主节点执行刷新命令:hdfs dfsadmin -refreshNodes

  2. 通过 hdfs dfsadmin -report 查看该节点状态(可以看到节点的状态变成了Decommissioned,过一段时间后变成Died)

  3. 节点退役完成,停止该节点进程

  4. 在datanode-deny.list 中删掉退役的节点

  5. 在slaves文件中删除掉新节点

  6. 负载均衡 start-balancer.sh


注意:

在删除节点时可能会出现 datanode长时间处于 Decommissioned 状态

因为hdfs datanode退役的理论是,使一个datanode退役,hdfs会把它标志为退役状态,但并不会立即失效,不能立即删除,要等到它里面的block都复制出来的时候,才可以把它删除。

块的复制因子理论是 : 同一个节点不能出现两个相同block复制版本。 改变了复制因子,
hdfs会有一定的策略,删除或者添加块的复制版本,所以会重新整理一遍!

如果副本数比datanode多也会导致一直处在Decommissioning的状态,因为退役的时候副本数没有改变。所以要在退役的时候增加新的节点,只是做退役的话,因为不满足最小副本数要求,一直会停留在退役中,如果想较快的退役的话需要减少副本数。


如有错误,欢迎私信纠正,谢谢支持!
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值