目录
1.服役新数据节点
随着业务的增长,存储的数据越来越多,需要对原有的datanode集群进行扩展,但是不能影响到系统的运行,在集群不启停的情况,服役新的数据节点。
1.1.环境准备
(1)克隆一台已有的数据节点机器。
(2)修改ip和主机名称
(3)删除hadoop/data下的所有文件和文件夹
(4)增加namenode和resourcemanager到新增加数据节点的ssh无密码登陆。
1.2.创建dfs.hosts文件并配置hdfs-site.xml
(1)在namenode的etc/hadoop目录下新建dfs.hosts文件。
文件中添加节点名称/ip(包括新加的datanode节点)
Hadoop102
Hadoop103
Hadoop104
Hadoop-datanode-new
(2).在namenode的hdfs-site.xml配置文件中增加dfs.hosts属性
<property>
<name>dfs.hosts</name>
<value>/usr/local/hadoop/etc/hadoop/dfs.hosts</value>
</property>
1.3.刷新namenode和resourcemanager
(1)刷新namenode
进入namenode所在节点路径:/usr/local/hadoop/bin
执行命令:./hdfs dfsadmin -refreshNodes
(2)刷新resourcemanager
进入resourcemanager所在节点路径:/usr/local/hadoop/bin
执行命令:yarn rmadmin -refreshNodes
1.4.修改namenode的slaves文件
在namenode的slaves文件中增加新的主机名称:
Hadoop102
Hadoop103
Hadoop104
Hadoop-datanode-new
1.5.启动新服役的数据节点
启动datanode: sbin/hadoop-daemon.sh start datanode
启动nodemanager: sbin/yarn-daemon.sh start nodemanager
2.退役旧数据节点
2.1.创建dfs.hosts.exclude文件并配置hdfs-site.xml
(1)在namenode的etc/hadoop目录下新建dfs.hosts.exclude文件。
文件中添加要退役的datanode节点名称/ip
Hadoop-datanode-new
(2)在namenode的hdfs-site.xml配置文件中增加dfs.hosts.exclude属性
<property>
<name>dfs.hosts.exclude</name>
<value>/usr/local/hadoop/etc/hadoop/dfs.hosts.exclude</value>
</property>
2.2.刷新namenode和resourcemanager
(1)刷新namenode
进入namenode所在节点路径:/usr/local/hadoop/bin
执行命令:./hdfs dfsadmin -refreshNodes
(2)刷新resourcemanager
进入resourcemanager所在节点路径:/usr/local/hadoop/bin
执行命令:yarn rmadmin -refreshNodes
2.3.停退役的数据节点
等待退役节点状态为 decommissioned(所有块已经复制完成),停止该节点及节点资源
管理器。
注意:如果副本数是 3,服役的节点小于等于 3,是不能退役成功的,需要修改副本数后才能退役。
2.4.将df.hosts中退役的数据节点删除,并刷新namenode和resourcemanager
在namenode的etc/hadoop目录下dfs.hosts文件中配置了服役的数据节点,从该文件中删除退役的数据节点后,刷新namenode和resourcemanager。
Hadoop102
Hadoop103
Hadoop104
Hadoop-datanode-new
2.5.在namenode上slaves文件中删除退役的节点。
将namenode的slaves文件中退役的数据节点删除:
Hadoop102
Hadoop103
Hadoop104
Hadoop-datanode-new