1.随着公司业务量的变化,需要对原有的数据节点新增服役节点或者退役节点,以达到资源合理利用
2.环境准备
[1].克隆一台节点
[2].修改 ip 地址和主机名称
[3].增加新增节点的同步 ssh(namenode和resourcemanager都需要要配置到新节点的ssh)
[4].如果克隆的机器有存量数据,先删除留存的文件/opt/module/hadoop-2.7.2/data
3.服役新节点步骤
[1].在 namenode 的/opt/module/hadoop-2.7.2/etc/hadoop 目录下创建dfs.hosts文件,添加如下主机名称(包含新服役的节点)
node202
node203
node204
node205
[2].在 namenode 的 hdfs-site.xml 配置文件中增加 dfs.hosts 属性
<property>
<name>dfs.hosts</name>
<value>/opt/module/hadoop-2.7.2/etc/hadoop/dfs.hosts</value>
</property>
[3].刷新 namenode
hdfs dfsadmin -refreshNodes
[4].在namenode刷新resourcemanager 节点
yarn rmadmin -refreshNodes
[5].在 namenode 的 slaves 文件中增加新主机名称,同步所有变更到其他节点
node205
[6].在新节点上单的启动datanode和nodemanager
sbin/hadoop-daemon.sh start datanode
sbin/yarn-daemon.sh start nodemanager
[7].用jps或者在 web 浏览器上检查
[8].如果数据不均衡,可以在namenode用命令实现集群的再平衡
sbin/start-balancer.sh
4.退役旧节点步骤
[1].在 namenode 的/opt/module/hadoop-2.7.2/etc/hadoop 目录下创建dfs.hosts.exclude 文件,添加如下主机名称(要退役的节点)
node205
[2].在 namenode 的 hdfs-site.xml 配置文件中增加 dfs.hosts.exclude 属性
<property>
<name>dfs.hosts.exclude</name>
<value>/opt/module/hadoop-2.7.2/etc/hadoop/dfs.hosts.exclude</value>
</property>
[3].namenode上刷新 namenode、刷新 resourcemanager
hdfs dfsadmin -refreshNodes
yarn rmadmin -refreshNodes
[4].检查 web 浏览器,退役节点的状态为 decommission in progress(退役中),说明数据节点正在复制块到其他节点。
[5].等待退役节点状态为 decommissioned(所有块已经复制完成),停止该节点及节点资源管理器。注意:如果副本数是 3,服役的节点小于等于 3,是不能退役成功的,需要修改副本数后才能退役。
[6].从 include 文件中删除退役节点
[7].刷新 namenode,刷新 resourcemanager
hdfs dfsadmin -refreshNodes
yarn rmadmin -refreshNodes
[8].从 namenode 的 slave 文件中删除退役节点 node205,同步更改配置
[9].如果数据不均衡,可以用命令实现集群的再平衡
sbin/start-balancer.sh