白名单:表示在白名单的主机IP地址都可以访问集群,用来存储数据。
企业中:配置白名单可以尽量防止黑客恶意访问攻击。
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
jpsall查看可知,hadoop3节点正常启动,只是没有在集群上工作
6)测试:在hadoop3上执行上传一个文件
[pcz@hadoop3 software]$ hadoop fs -put hadoop-3.1.3.tar.gz /test/software
通过打开web页面查看,上传的文件是成功的,但是数据只存储在hadoop1,hadoop2节点,所以说非白名单节点可访问集群,但是不能存储数据。
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已加入集群工作
(2)
查看前面上传的文件后发现,前面上传的测试文件已经自动存储到hadoop3上面,正好证明了前面所学的hadoop集群自动备份机制
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)拷贝 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
4)在hadoop4上上传文件
可以看到 上传的文件分别存储到hadoop4、hadoop1、hadoop3上面,是因为采取的就近原则,在hadoop4上上传的,所以选取距离的是hadoop4、hadoop1、hadoop3三个节点
1)企业经验:
在企业开发中,如果经常在hadoop102和hadoop104上提交任务,且副本数为2,由于数据本地性原则,就会导致hadoop102和hadoop104数据过多,hadoop103存储的数据量小。
另一种情况,就是新服役的服务器数据量比较少,需要执行集群均衡命令。
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,而是找一台比较空闲的机器。
黑名单:表示在黑名单的主机IP地址不可以用来存储数据。
企业中:配置黑名单,用来退役服务器。
服务器退役过程中,会自动备份一个本地存储数据的副本到其他节点上
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(退役中),说明数据
节点正在复制块到其他节点
5)等待退役节点状态为 decommissioned(所有块已经复制完成),停止该节点及节点资源管理器。注意:如果副本数是 3,服役的节点小于等于 3,是不能退役成功的,需要修改副本数后才能退役。
6)如果数据不均衡,可以用命令实现集群的再平衡
[pcz@hadoop1 hadoop-3.1.3]$sbin/startbalancer.sh -threshold 10