hadoop集群动态添加删除节点

2.在主节点的hosts添加主机名称,并且把该文件复制到集群中的其他节点上。通过hdfsdfsadmin-report查看该节点状态。因为hdfsdatanode退役的理论是,使一个datanode退役,hdfs会把它标志为退役状态,但并不会立即失效,不能立即删除,要等到它里面的block都复制出来的时候,才可以把它删除。块的复制因子理论是:同一个节点不能出现两个相同block复制...

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

一.添加节点

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.excludename>  
    <value>/usr/local/src/hadoop/etc/hadoop/datanode-deny.listvalue>    
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的状态,因为退役的时候副本数没有改变。所以要在退役的时候增加新的节点,只是做退役的话,因为不满足最小副本数要求,一直会停留在退役中,如果想较快的退役的话需要减少副本数。

如有错误,欢迎私信纠正,谢谢支持!

免责声明:本文内容来源于第三方或整理自互联网,本站仅提供展示,不拥有所有权,不代表本站观点立场,也不构成任何其他建议,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容,不承担相关法律责任。如发现本站文章、图片等内容有涉及版权/违法违规或其他不适合的内容, 请及时联系我们进行处理。

相关推荐