目录
一、动态扩容、节点上线
1.1 背景
1.2 扩容步骤
1.2.1 新机器基础环境准备
1.2.2 Hadoop 配置
1.2.3 手动启动 DataNode 进程
1.2.4 Web 页面查看情况
1.2.5 DataNode 负载均衡服务
二、动态缩容、节点下线
2.1 背景
2.2 缩容步骤
2.2.1 添加退役节点
2.2.2 刷新集群
2.2.3 手动关闭 DataNode 进程
2.2.4 DataNode 负载均衡服务
三、HDFS 集群黑、白名单机制
3.1 白名单
3.2 黑名单
一、动态扩容、节点上线
1.1 背景
节点上线:已有 HDFS 集群容量已不能满足存储数据的需求,需要在原有集群基础上动态添加新的 DataNode 节点。
俗称动态扩容、节点服役。
1.2 扩容步骤
1.2.1 新机器基础环境准备
准备一台新的机器,设置好主机名、IP(192.168.170.139),做好 Hosts 映射、SSH 免密登录和时间同步,关闭防火墙以及安装 JDK 环境。
具体操作请看这篇文章:Hadoop 3.2.4 集群搭建详细图文教程_Stars.Sky的博客-CSDN博客
1.2.2 Hadoop 配置
- 修改 namenode 节点 workers 配置文件,增加新节点主机名,便于后续一键启停。
- 从 namenode 节点复制 scp hadoop 安装包到新节点,注意不包括 hadoop.tmp.dir 指定的数据存储目录。
- 新机器上配置 hadoop 环境变量(/etc/profile)。
1.2.3 手动启动 DataNode 进程
[root@hadoop04 ~]# hdfs --daemon start datanode
1.2.4 Web 页面查看情况
地址:http://hadoop01:9870/
1.2.5 DataNode 负载均衡服务
新加入的节点,没有数据块的存储,使得集群整体来看负载不均衡。因此最后还需要对 hdfs 负载设置均衡。(在 Hadoop01 执行)
# 首先设置数据传输带宽
hdfs dfsadmin -setBalancerBandwidth 104857600
# 然后启动 Balancer,等待集群自均衡完成即可
hdfs balancer -threshold 5
二、动态缩容、节点下线
2.1 背景
节点下线:服务器需要进行退役更换,需要在当下的集群中停止某些机器上 datanode 的服务。
俗称动态缩容、节点退役。
2.2 缩容步骤
2.2.1 添加退役节点
在 namenode 机器的 hdfs-site.xml 配置文件中需要提前配置 dfs.hosts.exclude 属性,该属性指向的文件就是所谓的黑名单列表,会被 namenode 排除在集群之外。如果文件内容为空,则意味着不禁止任何机器。
提前配置好的目的是让 namenode 启动的时候就能加载到该属性,只不过还没有指定任何机器。否则就需要重启 namenode 才能加载,因此这样的操作我们称之为具有前瞻性的操作。
[root@hadoop01 ~]# cd /bigdata/hadoop/server/hadoop-3.2.4/etc/hadoop/
[root@hadoop01 /bigdata/hadoop/server/hadoop-3.2.4/etc/hadoop]# vim hdfs-site.xml
<property>
<name>dfs.hosts.exclude</name>
<value>/bigdata/hadoop/server/hadoop-3.2.4/etc/hadoop/excludes</value>
</property>
[root@hadoop01 /bigdata/hadoop/server/hadoop-3.2.4/etc/hadoop]# scp hdfs-site.xml hadoop02:$PWD
hdfs-site.xml 100% 1256 632.5KB/s 00:00
[root@hadoop01 /bigdata/hadoop/server/hadoop-3.2.4/etc/hadoop]# scp hdfs-site.xml hadoop03:$PWD
hdfs-site.xml 100% 1256 112.6KB/s 00:00
[root@hadoop01 /bigdata/hadoop/server/hadoop-3.2.4/etc/hadoop]# scp hdfs-site.xml hadoop04:$PWD
hdfs-site.xml 100% 1256 516.4KB/s 00:00
编辑 dfs.hosts.exclude 属性指向的 excludes 文件,添加需要退役的主机名称。注意:如果副本数是 3,服役的节点小于等于 3,是不能退役成功的,需要修改副本数后才能退役。
# 重新启动 HDFS 集群,使配置生效
[root@hadoop01 /bigdata/hadoop/server/hadoop-3.2.4/etc/hadoop]# stop-dfs.sh
[root@hadoop01 /bigdata/hadoop/server/hadoop-3.2.4/etc/hadoop]# start-dfs.sh
[root@hadoop01 /bigdata/hadoop/server/hadoop-3.2.4/etc/hadoop]# vim excludes
hadoop04
2.2.2 刷新集群
在 namenode 所在的机器刷新节点:hdfs dfsadmin -refreshNodes
等待退役节点状态为 decommissioned(所有块已经复制完成)。
[root@hadoop01 /bigdata/hadoop/server/hadoop-3.2.4/etc/hadoop]# hdfs dfsadmin -refreshNodes
Refresh nodes successful
正在退役:
退役完成:
2.2.3 手动关闭 DataNode 进程
[root@hadoop04 ~]# hdfs --daemon stop datanode
[root@hadoop04 ~]# jps
20310 Jps
2.2.4 DataNode 负载均衡服务
如果需要可以对已有的 HDFS 集群进行负载均衡服务:
hdfs balancer –threshold 5
三、HDFS 集群黑、白名单机制
3.1 白名单
所谓的白名单指的是允许哪些机器加入到当前的 HDFS 集群中,是一种准入机制。白名单由 dfs.hosts 参数指定,该参数位于 hdfs-site.xml。默认值为空。dfs.hosts 指向文件,该文件包含允许连接到 namenode 的主机列表。必须指定文件的完整路径名。如果该值为空,则允许所有主机准入。
3.2 黑名单
所谓的黑名单指的是禁止哪些机器加入到当前的 HDFS 集群中,是一种禁入机制。黑名单由dfs.hosts.exclude 参数指定,该参数位于 hdfs-site.xml。默认值为空。dfs.hosts.exclude 指向文件,该文件包含不允许连接到名称节点的主机列表。必须指定文件的完整路径名。如果该值为空,则不禁止任何主机加入。
上一篇文章:Hadoop 3.2.4 集群搭建详细图文教程_Stars.Sky的博客-CSDN博客