问题描述
我们在维护hadoop集群的时候,需要动态增加和删除datanode或者yarn管理节点,而不是停掉整个集群。
首先,hadoop配置文件目录下的hdfs-site.xml中维护这集群“白名单”和“黑名单”两个文件,如果没有的话需要在配置文件中添加这两个属性。
<property>
<!-- 白名单信息-->
<name>dfs.hosts</name>
<value>/home/hadoop/hadoop/etc/dfs.include</value>
</property>
<property>
<!-- 黑名单信息-->
<name>dfs.hosts.exclude</name>
<value>/home/hadoop/hadoop/etc/dfs.exclude</value>
</property>
服役(添加)新的节点
当前集群状态:
我们现在开始准备动态新增一个datanode节点:
1. 在dfs.include文件新增“新节点”名称,该文件在nn的本地目录。
最后一行是我们新添加的datanode节点的主机,注意在“/etc/hosts”中新增es05节点的ip地址
2. namenode上刷新节点
//在namenode上刷新节点
hdfs dfsadmin -refreshNodes
3.etc/slaves文件中添加新增的节点“es05”
4.再通过webUI查看datanode的信息如下:
3.在新节点上启动datanode进程
hadoop-daemon.sh start datanode
退役(删除)datanode节点
1.添加退役节点的ip到黑名单,不要更新白名单.
hadoop/etc/dfs.hosts.exclude
es05
2. 刷新namenode节点
hdfs dfsadmin -refreshNodes
3.查看webui,节点状态在decommisstion in progress
稍后 es05 datanode节点变成 decommissiioned状态,数据转移工作已经完成。
4.在es05主机上停止datanode进程
hadoop-daemon.sh stop datanode
5.刷新namenode节点,查看现在所有datanode节点
hdfs dfsadmin -refreshNodes