Hadoop3教程(二十九):(生产调优篇)集群扩容及缩容(白名单与黑名单)

文章目录

这一章还算是比较重要的。

(150)添加白名单

白名单:在白名单里的主机IP地址,就可以用来存储数据以及互相之间的通信等。一般企业都会配置集群白名单,防止黑客攻击。

相应的,集群里也有黑名单,下几节会讲。

配置白名单步骤如下,仅做了解,所以直接复制的教程内容:

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

(1)创建白名单

复制代码
[atguigu@hadoop102 hadoop]$ vim whitelist

在whitelist中添加如下主机名称,假如集群正常工作的节点为102 103 :

复制代码
hadoop102
hadoop103

(2)创建黑名单

复制代码
[atguigu@hadoop102 hadoop]$ touch blacklist

​ 暂时保持空的就可以

2)在hdfs-site.xml配置文件中增加dfs.hosts配置参数

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>

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

复制代码
[atguigu@hadoop104 hadoop]$ xsync hdfs-site.xml whitelist

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

复制代码
[atguigu@hadoop102 hadoop-3.1.3]$ myhadoop.sh stop
[atguigu@hadoop102 hadoop-3.1.3]$ myhadoop.sh start

5)在web浏览器上查看DN,http://hadoop102:9870/dfshealth.html#tab-datanode\\

6)在hadoop104上执行上传数据,失败

复制代码
[atguigu@hadoop104 hadoop-3.1.3]$ hadoop fs -put NOTICE.txt /

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

复制代码
[atguigu@hadoop102 hadoop]$ vim whitelist

修改为如下内容:

复制代码
hadoop102
hadoop103
hadoop104

8)刷新NameNode

复制代码
[atguigu@hadoop102 hadoop-3.1.3]$ hdfs dfsadmin -refreshNodes
Refresh nodes successful

9)在web浏览器上查看DN,http://hadoop102:9870/dfshealth.html#tab-datanode\\

(151)服役新服务器

这个场景还是很重要的,因为随着公司业务的增长,数据量越来越大,对计算资源的需求也越来越大,所以原有的节点可能已经不能满足现有的需求,因此往往需要在原有集群基础上,动态添加新的数据节点。可以参照淘宝双11。

下面内容也仅做了解。

首先需要准备一台新的节点:

  • 在hadoop100主机上再克隆一台hadoop105主机;

  • 修改IP地址和主机名称

    [root@hadoop105 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
    [root@hadoop105 ~]# vim /etc/hostname

  • 拷贝hadoop102的/opt/module目录和/etc/profile.d/my_env.sh到hadoop105

    [atguigu@hadoop102 opt]$ scp -r module/* atguigu@hadoop105:/opt/module/

    [atguigu@hadoop102 opt]$ sudo scp /etc/profile.d/my_env.sh root@hadoop105:/etc/profile.d/my_env.sh

    [atguigu@hadoop105 hadoop-3.1.3]$ source /etc/profile

  • 删除hadoop105上Hadoop的历史数据,data和log数据

    [atguigu@hadoop105 hadoop-3.1.3]$ rm -rf data/ logs/

  • 配置hadoop102和hadoop103到hadoop105的ssh无密登录

    [atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop105

    [atguigu@hadoop103 .ssh]$ ssh-copy-id hadoop105

接下来就是把这台新节点动态加入当前集群:

直接启动DataNode,即可关联到集群(所谓的动态,要的就是不需要重启集群):

复制代码
[atguigu@hadoop105 hadoop-3.1.3]$ hdfs --daemon start datanode
[atguigu@hadoop105 hadoop-3.1.3]$ yarn --daemon start nodemanager

如果集群没有配置白名单的话,到上一步就结束了,如图可以看到节点已经加进去了。

但是如果配置了白名单,则还需要在白名单中增加新的节点:

(1)在白名单whitelist中增加hadoop104、hadoop105,并重启集群

复制代码
[atguigu@hadoop102 hadoop]$ vim whitelist

修改为如下内容:

复制代码
hadoop102
hadoop103
hadoop104
hadoop105

(2)分发

复制代码
[atguigu@hadoop102 hadoop]$ xsync whitelist

(3)刷新NameNode

复制代码
[atguigu@hadoop102 hadoop-3.1.3]$ hdfs dfsadmin -refreshNodes
Refresh nodes successful

最后可以测试下,往105节点上上传文件:

复制代码
[atguigu@hadoop105 hadoop-3.1.3]$ hadoop fs -put /opt/module/hadoop-3.1.3/LICENSE.txt /

可以看到,成功,且共有3个副本。

(152)服务器间数据均衡

基于数据本地性原则,如果在102上提交数据的话,102上一般会保留该数据一个副本,然后其他副本会分散在其他节点上。既然如此,那我如果经常在102上提交数据,那102上存储的数据势必会比其他节点更多,这种情况下就需要进行服务器间的数据均衡。

还有一种情况,就是新服役的节点,存储的数据量自然会比老节点要少,这时候也需要做服务器间的数据均衡。

开启数据均衡的命令:

复制代码
[atguigu@hadoop105 hadoop-3.1.3]$ sbin/start-balancer.sh -threshold 10

对于参数10,代表的是集群中各个节点的磁盘空间利用率相差不超过10%,可根据实际情况进行调整。

停用数据均衡命令:

复制代码
[atguigu@hadoop105 hadoop-3.1.3]$ sbin/stop-balancer.sh

需要注意,由于HDFS需要启动单独的Rebalance Server来执行Rebalance操作,所以尽量不要在NameNode所在节点执行start-balancer.sh,去找一台集群内比较空闲的机器,以免影响集群正常使用。

(153)黑名单退役服务器

什么是黑名单呢?

黑名单里的主机IP地址是不可以存储数据的。

相比白名单,黑名单的力度要弱一些,企业中一般是通过配置黑名单,用来动态退役服务器的(不需要重启集群)。

下面仅做了解,直接复制教程:

黑名单配置步骤如下:

1)编辑/opt/module/hadoop-3.1.3/etc/hadoop目录下的blacklist文件

复制代码
[atguigu@hadoop102 hadoop] vim blacklist

添加如下主机名称(要退役的节点)

hadoop105

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

xml 复制代码
<!-- 黑名单 -->

<property>

   <name>dfs.hosts.exclude</name>

   <value>/opt/module/hadoop-3.1.3/etc/hadoop/blacklist</value>

</property>

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

复制代码
[atguigu@hadoop104 hadoop]$ xsync hdfs-site.xml blacklist

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

复制代码
[atguigu@hadoop102 hadoop-3.1.3]$ hdfs dfsadmin -refreshNodes

Refresh nodes successful

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

5)等待退役节点状态为decommissioned(所有块已经复制完成),停止该节点及节点资源管理器。注意: 如果副本数是3,服役的节点小于等于3,是不能退役成功的,需要修改副本数后才能退役

复制代码
[atguigu@hadoop105 hadoop-3.1.3]$ hdfs --daemon stop datanode
stopping datanode

[atguigu@hadoop105 hadoop-3.1.3]$ yarn --daemon stop nodemanager
stopping nodemanager

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

复制代码
[atguigu@hadoop102 hadoop-3.1.3]$ sbin/start-balancer.sh -threshold 10

参考文献

  1. 【尚硅谷大数据Hadoop教程,hadoop3.x搭建到集群调优,百万播放】
相关推荐
大大大大晴天6 小时前
每天认识一个组件:数据治理Apache Atlas
大数据
数字新视界6 小时前
2026模块化机房选型指南:行业市场发展趋势、占有率与竞争梯队分析报告解析
大数据·人工智能·物联网·数据中心·微模块机房·模块化机房·冷通道
姜穆澜9 小时前
OneID 从 0 到 1 完整生产案例(四)
大数据
OsDepK9 小时前
项目快速Git至仓库(完整版)
大数据·git·elasticsearch·搜索引擎
合米AI SOP系统10 小时前
传统产线如何快速上马落地 AI 防错?合米科技 AI SOP 7天即可上线。
大数据·人工智能·科技
思录Echo10 小时前
什么决定具身智能的最终走向?多技术路线与落地现实辨析
大数据·人工智能
xiaohaiAIgeo10 小时前
【2026年】AI监控加行为分析守护实验室安全
大数据·人工智能·科普知识
林墨聊AIGC11 小时前
动漫AI视频创作工具在哪找到的?2026年最新动漫AI视频平台与软件指南
大数据·人工智能·ai作画·aigc·音视频
故七月12 小时前
告别 AI 时代品牌 “隐身”:万域智瞰 AI‑GEO,构建品牌大模型时代营销新基建
大数据·人工智能
数字孪生视频孪生13 小时前
三维实时重构异构底座 核工危化无感定位跨境轨迹一屏统揽
大数据·运维·人工智能·重构·架构