第4章、HDFS_集群的扩容和缩容

4.1 添加白名单

白名单:表示在白名单的主机IP地址都可以访问集群,用来存储数据。
企业中:配置白名单可以尽量防止黑客恶意访问攻击。
第4章、HDFS_集群的扩容和缩容_第1张图片

配置白名单步骤如下

1)在NameNode节点上的/opt/module/hadoop-3.1.3/etc/hadoop目录下分别创建whitelist(白名单)和blacklist(黑名单)文件
(1)创建白名单

[pcz@hadoop1 hadoop]$ vim whitelist
hadoop1 
hadoop2

(2)创建黑名单

[pcz@hadoop1 hadoop]$ touch blacklist

2)在hdfs-site.xml配置文件中增加dfs.hosts配置参数
(1)进入配置文件目录

[pcz@hadoop1 hadoop-3.1.3]$ cd etc/hadoop/
[pcz@hadoop1 hadoop]$ vim hdfs-site.xml

(2)配置参数



ds.hosts
/opt/module/hadoop-3.1.3/etc/hadoop/whitelist



dfs.hosts.exclude
/opt/module/hadoop-3.1.3/etc/hadoop/blacklist


3)分发配置文件whitelist,hdfs-site.xml,blacklist

[pcz@hadoop1 hadoop]$ xsync blacklist hdfs-site.xml
[pcz@hadoop1 hadoop]$ xsync whitelist

4)第一次添加白名单必须重启集群,不是第一次,只需要刷新NameNode节点即可

[pcz@hadoop1 hadoop]$ pczhd start

刷新节点:

[pcz@hadoop1 hadoop]$ hadoop dfsadmin -refreshNodes

5)在web浏览器上查看DN,可以看到只有白名单的两个节点
第4章、HDFS_集群的扩容和缩容_第2张图片

jpsall查看可知,hadoop3节点正常启动,只是没有在集群上工作
第4章、HDFS_集群的扩容和缩容_第3张图片

6)测试:在hadoop3上执行上传一个文件

[pcz@hadoop3 software]$ hadoop fs -put hadoop-3.1.3.tar.gz /test/software

上传数据警告
第4章、HDFS_集群的扩容和缩容_第4张图片

通过打开web页面查看,上传的文件是成功的,但是数据只存储在hadoop1,hadoop2节点,所以说非白名单节点可访问集群,但是不能存储数据。
第4章、HDFS_集群的扩容和缩容_第5张图片

7)二次修改白名单,增加hadoop3

[pcz@hadoop1 hadoop]$ vim whitelist 
修改为如下内容
hadoop1
hadoop2
hadoop3

8)分发whitelist,刷新NameNode

[pcz@hadoop1 hadoop]$ xsync whitelist
[pcz@hadoop1 hadoop]$ hadoop dfsadmin -refreshNodes

9)在web浏览器1上查看DN
(1)
hadoop3已加入集群工作
第4章、HDFS_集群的扩容和缩容_第6张图片

(2)
查看前面上传的文件后发现,前面上传的测试文件已经自动存储到hadoop3上面,正好证明了前面所学的hadoop集群自动备份机制
第4章、HDFS_集群的扩容和缩容_第7张图片

4.2 服役新服务器

1)需求
随着公司业务的增长,数据量越来越大,原有的数据节点的容量已经不能满足存储数据的需求,需要在原有集群基础上动态添加新的数据节点
2)环境准备
(1)在 模板机上再克隆一台 hadoop4 主机
(2)修改IP地址和名称,重启

[root@hadoop4 pcz]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
[root@hadoop4 pcz]# vim /etc/hostname
[root@hadoop4 pcz]# reboot

(3)修改虚拟机hosts,workers并分发。配置windows系统的hosts映射

[root@hadoop4 pcz]# vim /etc/hosts
[pcz@hadoop4 ~]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/workers 

第4章、HDFS_集群的扩容和缩容_第8张图片

第4章、HDFS_集群的扩容和缩容_第9张图片

第4章、HDFS_集群的扩容和缩容_第10张图片

(4)拷贝 hadoop1 的/opt/module 目录和/etc/profile.d/my_env.sh 到 hadoop4

[pcz@hadoop1 opt]$ scp -r module/* pcz@hadoop4:/opt/module/
[pcz@hadoop1 opt]$ sudo scp /etc/profile.d/my_env.sh root@hadoop4:/etc/profile.d/my_env.sh
[pcz@hadoop4 ~]$ source /etc/profile

(5)删除hadoop4上的Hadoop的历史数据,data和logs数据

[pcz@hadoop4 ~]$ rm -rf /opt/module/hadoop-3.1.3/data/ /opt/module/hadoop-3.1.3/logs/

(6)配置hadoop1和hadoop2到hadoop4的ssh免密登录

[pcz@hadoop1 ~]$ ssh-copy-id hadoop4
[pcz@hadoop2 ~]$ ssh-copy-id hadoop4

3)服役新节点具体步骤
(1)直接启动 DataNode,即可关联到集群

[pcz@hadoop4 hadoop-3.1.3]$ hdfs --daemon start datanode
[pcz@hadoop4 hadoop-3.1.3]$ yarn --daemon start nodemanager

(2) 把hadoop4加入白名单,并分发(分发脚本自行修改)

[pcz@hadoop1 ~]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/whitelist 
修改为如下内容
hadoop1
hadoop2
hadoop3
hadoop4 
[pcz@hadoop1 ~]$ xsync /opt/module/hadoop-3.1.3/etc/hadoop/whitelist /opt/module/hadoop-3.1.3/etc/hadoop/whitelist 

(3)重启NameNode

[pcz@hadoop1 ~]$ hdfs dfsadmin -refreshNodes

web页面查看 已成功
第4章、HDFS_集群的扩容和缩容_第11张图片

4)在hadoop4上上传文件
可以看到 上传的文件分别存储到hadoop4、hadoop1、hadoop3上面,是因为采取的就近原则,在hadoop4上上传的,所以选取距离的是hadoop4、hadoop1、hadoop3三个节点
第4章、HDFS_集群的扩容和缩容_第12张图片

4.3 服务器间的数据均衡

1)企业经验:
在企业开发中,如果经常在hadoop102和hadoop104上提交任务,且副本数为2,由于数据本地性原则,就会导致hadoop102和hadoop104数据过多,hadoop103存储的数据量小。

另一种情况,就是新服役的服务器数据量比较少,需要执行集群均衡命令。
第4章、HDFS_集群的扩容和缩容_第13张图片

2)开启数据均衡命令:

[pcz@hadoop1 ~]$ cd /opt/module/hadoop-3.1.3/
[pcz@hadoop1 hadoop-3.1.3]$ sbin/start-balancer.sh -threshold 10

对于参数10,代表的是集群中各个节点的磁盘空间利用率相差不超过10%,可根据实际情况调整。
3)停止数据均衡命令:

[pcz@hadoop2 hadoop-3.1.3]$ sbin/stop-balancer.sh

注意:由于HDFS需要单独启动Rebalance Server来执行Rebalabce操作,所以尽量不要在NameNode上执行start-balancer.sh,而是找一台比较空闲的机器。

4.4 黑名单退役服务器

黑名单:表示在黑名单的主机IP地址不可以用来存储数据。
企业中:配置黑名单,用来退役服务器。
服务器退役过程中,会自动备份一个本地存储数据的副本到其他节点上
第4章、HDFS_集群的扩容和缩容_第14张图片

黑名单配置步骤如下:

1)编辑/opt/module/hadoop-3.1.3/etc/hadoop目录下的blacklist文件,然后分发到各节点

[pcz@hadoop1 hadoop-3.1.3]$ cd /opt/module/hadoop-3.1.3/etc/hadoop/
[pcz@hadoop1 hadoop]$ vim blacklist
添加以下内容
hadoop4
[pcz@hadoop1 hadoop]$ xsync blacklist 

注意:如果黑名单中没有配置,需要在 hdfs-site.xml 配置文件中增加 dfs.hosts 配置参数,并分发

[pcz@hadoop1 hadoop]$ vim hdfs-site.xml
添加如下内容


dfs.hosts.exclude
/opt/module/hadoop-3.1.3/etc/hadoop/blacklist

[pcz@hadoop1 hadoop]$ xsync hdfs-site.xml

3)第一次添加黑名单必须重启集群,不是第一次,只需要刷新 NameNode 节点即可

[pcz@hadoop1 hadoop]$ hdfs dfsadmin -refreshNodes
Refresh nodes successful

4)打开Web 浏览器,退役节点的状态为decommission in progress(退役中),说明数据
节点正在复制块到其他节点

第4章、HDFS_集群的扩容和缩容_第15张图片

5)等待退役节点状态为 decommissioned(所有块已经复制完成),停止该节点及节点资源管理器。注意:如果副本数是 3,服役的节点小于等于 3,是不能退役成功的,需要修改副本数后才能退役。
第4章、HDFS_集群的扩容和缩容_第16张图片

6)如果数据不均衡,可以用命令实现集群的再平衡

[pcz@hadoop1 hadoop-3.1.3]$sbin/startbalancer.sh -threshold 10

你可能感兴趣的:(hdfs,hadoop,big,data,Hadoop集群扩容)