文章目录
1、添加白名单
1.1 概念
白名单中的主机IP地址,都可以用来存储数据,白名单之外的主机,都无法访问Hadoop集群
企业中一般会配置白名单,可以防止黑客攻击
1.2 第一次配置白名单
- 在NameNode节点的/opt/module/hadoop-3.1.3/etc/hadoop目录下分别创建whitelist 和blacklist文件
[atguigu@hadoop102 hadoop]$ vim whitelist
[atguigu@hadoop102 hadoop]$ touch blacklist
[atguigu@hadoop102 hadoop]$ pwd
/opt/module/hadoop-3.1.3/etc/hadoop
- 先在白名单中添加主机
hadoop102
hadoop103
- 配置hdfs-site.xml,告知集群白名单和黑名单路径
<!-- 白名单 -->
<property>
<name>dfs.hosts</name>
<value>/opt/module/hadoop-3.1.3/etc/hadoop/whitelist</value>
</property>
<!-- 黑名单 -->
<property>
<name>dfs.hosts.exclude</name>
<value>/opt/module/hadoop-3.1.3/etc/hadoop/blacklist</value>
</property>
- 分发配置文件whitelist,hdfs-site.xml
[atguigu@hadoop104 hadoop]$ xsync hdfs-site.xml whitelist
- 第一次添加白名单需要重启集群,不是第一次,只需要刷新NameNode节点
[atguigu@hadoop102 hadoop-3.1.3]$ myhadoop.sh stop
[atguigu@hadoop102 hadoop-3.1.3]$ myhadoop.sh start
1.3 结果
web页面上显示hadoop104没有启动
jps发现hadoop104进程还在
[atguigu@hadoop102 hadoop]$ jpsall
=============== hadoop102 ===============
74721 JobHistoryServer
73031 DataNode
72534 NameNode
74249 NodeManager
=============== hadoop103 ===============
45089 ResourceManager
44851 DataNode
45398 NodeManager
=============== hadoop104 ===============
59024 NodeManager
58901 SecondaryNameNode
58742 DataNode
使用hadoop104上传文件
[atguigu@hadoop104 hadoop-3.1.3]$ hadoop fs -put NOTICE.txt /
2022-11-01 09:54:27,825 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
可以上传文件,但不能存储数据,hadoop104上面没有副本
1.4 第二次配置白名单
修改白名单,加入hadoop104
[atguigu@hadoop102 hadoop]$ vim whitelist
修改为如下内容
hadoop102
hadoop103
hadoop104
刷新NameNode
[atguigu@hadoop102 hadoop]$ hdfs dfsadmin -refreshNodes
Refresh nodes successful
1.5 结果
web页面上显示hadoop104启动了
可以用来存储数据
2、服役新服务器(扩容)
2.1 需求
在不重启集群的情况下,新增服务器
2.2 环境准备
- 在hadoop100主机上克隆一台hadoop105主机,相当于是一台新服务器
- 修改IP地址和主机名称
[root@hadoop100 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@hadoop100 ~]# vim /etc/hostname
- 将hadoop、jdk拷贝到105
[atguigu@hadoop102 hadoop]$ scp -r /opt/module/hadoop-3.1.3/ atguigu@hadoop105:/opt/module/
[atguigu@hadoop102 hadoop]$ scp -r /opt/module/jdk1.8.0_212/ atguigu@hadoop105:/opt/module/
- 拷贝环境变量
[atguigu@hadoop102 hadoop]$ sudo scp /etc/profile.d/my_env.sh root@hadoop105:/etc/profile.d/my_env.sh
- 在hadoop105服务器上source,让环境变量生效
[atguigu@hadoop105 ~]$ source /etc/profile
[atguigu@hadoop105 ~]$ jps
37395 Jps
- 删除hadoop105上Hadoop的历史数据,data和log数据
[atguigu@hadoop105 hadoop-3.1.3]$ rm -rf data/ logs/
- hadoop105免密登录
[atguigu@hadoop102 ~]$ cd ~
[atguigu@hadoop102 ~]$ cd .ssh/
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop105
2.3 服役新集群步骤
单节点启动105
[atguigu@hadoop105 hadoop-3.1.3]$ hdfs --daemon start datanode
[atguigu@hadoop105 hadoop-3.1.3]$ yarn --daemon start nodemanager
在白名单whitelist中增加hadoop105
[atguigu@hadoop102 hadoop]$ vim whitelist
修改为如下内容
hadoop102
hadoop103
hadoop104
hadoop105
分发配置
[atguigu@hadoop102 hadoop]$ xsync whitelist
刷新NameNode
[atguigu@hadoop102 hadoop-3.1.3]$ hdfs dfsadmin -refreshNodes
Refresh nodes successful
2.4 结果
在hadoop105上上传文件
[atguigu@hadoop105 hadoop-3.1.3]$ hadoop fs -put wc.jar /
2022-11-01 13:54:43,771 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
目前情况下,服务器之间数据不均匀,hadoop105数据少,其他节点数据多
3、服务器间数据均衡
3.1 需求
如果我们经常在hadoop102和hadoop104上提交任务,且副本数为2,由于数据本地性原则,就会导致hadoop102和hadoop104数据过多,hadoop103存储的数据量较小
或者是新服役一台hadoop105时,新服务器的数据量会比较少
3.2 配置命令
[atguigu@hadoop105 hadoop-3.1.3]$ sbin/start-balancer.sh -threshold 10
尽量找一台没有NameNode节点的空闲机器执行该命令
10表示各个磁盘的使用容量差值不能超过10%
图中hadoop102和hadoop103差值为90%
停止数据均衡命令
sbin/stop-balancer.sh
4、黑名单退役服务器(缩容)
4.1 概念
- 在黑名单上的IP不可以访问集群,也不可以用于存储数据
- 黑名单的管控力度没有白名单强,只能保证黑名单上的几台服务器无法访问
- 保证服务器退役后,服务器上的副本可以拷贝到其他集群
4.2 配置
- 退役105
[atguigu@hadoop102 hadoop]$ cd /opt/module/hadoop-3.1.3/etc/hadoop
[atguigu@hadoop102 hadoop] vim blacklist
hadoop105
- hdfs-site.xml
<!-- 黑名单 -->
<property>
<name>dfs.hosts.exclude</name>
<value>/opt/module/hadoop-3.1.3/etc/hadoop/blacklist</value>
</property>
- 分发配置文件blacklist,hdfs-site.xml
[atguigu@hadoop102 hadoop]$ xsync hdfs-site.xml blacklist
- 第一次添加黑名单必须重启集群,不是第一次,只需要刷新NameNode节点
[atguigu@hadoop102 hadoop-3.1.3]$ hdfs dfsadmin -refreshNodes
Refresh nodes successful
4.3 结果
先变成 decommission in progress(退役中),数据正在备份到其他节点
再变成decommissioned(所有块已经复制完成)
等10分钟30秒后服务器真正退役
如果数据不均衡,可以用命令实现集群的再平衡
[atguigu@hadoop102 hadoop-3.1.3]$ sbin/start-balancer.sh -threshold 10