背景:随着公司业务的增长,数据量越来越大,原有的数据节点的容量已经不能满足存储数据的需求,需要在原有集群基础上动态添加新的数据节点。原来数据节点有三个(hadoopc1h1、hadoopc1h2、hadoopc1h3),需要扩充两个数据节点(hadoopc1h4、hadoopc1h4)
背景:由于业务需求原来五个节点的hadoop(hadoopc1h1、hadoopc1h2、hadoopc1h3、hadoopc1h4、hadoopc1h5),需要退役连个节点(hadoopc1h4、hadoopc1h5)
(1)在NameNode的${HADOOP_HOME}/etc/hadoop目录下创建dfs.hosts文件
[root@hadoopc1h1 /opt/module/hadoop-2.7.2/etc/hadoop]$ touch dfs.hosts(2)添加如下主机名称(不添加退役的节点)
hadoopc1h1 hadoopc1h2 hadoopc1h3(3)在NameNode的hdfs-site.xml配置文件中增加dfs.hosts属性
<property> <name>dfs.hosts</name> <value>${HADOOP_HOME}/etc/hadoop/dfs.hosts</value> </property>(4)将配置好的hdfs-site.xm分发到其他节点上 (5)刷新NameNode
[root@hadoopc1h1 ~]$ hdfs dfsadmin -refreshNodes(6)更新ResourceManager节点
[root@hadoopc1h1 ~]$ yarn rmadmin -refreshNodes(7)在web浏览器上查看
(1)在NameNode的${HADOOP_HOME}/etc/hadoop目录下创建dfs.hosts.exclude文件
[root@hadoopc1h1 /opt/module/hadoop-2.7.2/etc/hadoop]$ touch dfs.hosts.exclude(2)添加如下主机名称(添加退役的节点)
hadoopc1h4 hadoopc1h5(3)在NameNode的hdfs-site.xml配置文件中增加dfs.hosts.exclude属性
<property> <name>dfs.hosts.exclude</name> <value>${HADOOP_HOME}/etc/hadoop/dfs.hosts.exclude</value> </property>(4)刷新NameNode、刷新ResourceManager
[root@hadoopc1h1 ~]$ hdfs dfsadmin -refreshNodes [root@hadoopc1h1 ~]$ yarn rmadmin -refreshNodes(5) 检查Web浏览器,退役节点的状态为decommission in progress(退役中),说明数据节点正在复制块到其他节点 (6)5. 等待退役节点状态为decommissioned(所有块已经复制完成),停止该节点及节点资源管理器。注意:如果副本数是3,服役的节点小于等于3,是不能退役成功的,需要修改副本数后才能退役 (6)停止该节点
[root@hadoopc1h5 hadoop-2.7.2]$ sbin/hadoop-daemon.sh stop datanode stopping datanode [root@hadoopc1h5 hadoop-2.7.2]$ sbin/yarn-daemon.sh stop nodemanager(7)如果数据不均衡,可以用命令实现集群的再平衡
[root@hadoopc1h5 hadoop-2.7.2]$ sbin/start-balancer.sh 注意:不允许白名单和黑名单中同时出现同一个主机名称