您现在的位置是:首页 >其他 >【大数据之Hadoop】二十八、生产调优-HDFS集群扩容及缩容网站首页其他

【大数据之Hadoop】二十八、生产调优-HDFS集群扩容及缩容

阿宁呀 2024-06-14 17:18:18
简介【大数据之Hadoop】二十八、生产调优-HDFS集群扩容及缩容

  增加或缩减服务器,注意不允许白名单和黑名单同时出现同一个主机。

1 服役新服务器

  原有数据节点不能满足数据存储需求时,需要在原有集群的基础上动态增加节点,即动态增加服务器,增加服务器的同时不需要重启集群。

  hadoop完全分布式集群设置了3个datanode节点,当白名单里只配置了2台主机时,在hdfs系统中显示datanode还是有3个节点的原因:

  白名单只限制哪些机器可以作为DataNode加入到集群中,但是这只是一个限制条件,并不会阻止DataNode节点向NameNode注册。因为配置了3个DataNode节点,即使其中某些节点不在白名单中,它们仍然会向NameNode注册并成为集群的一部分。开发时注意如果某个DataNode节点不在白名单中,则在设置白名单时,需要在配置文件中将该节点的IP地址添加到白名单中,以确保它不会被误删或误配置。

  根据上述原因需要一台新的主机hadoop105进行测试。
环境准备
(1)在hadoop100主机上克隆一台hadoop105主机。
(2)修改ip地址和主机名,然后重启。

vim /etc/sysconfig/network-scripts/ifcfg-ens33
vim /etc/hostname
reboot

(3)在hadoop102拷贝/opt/module和/etc/profile.d/my_env.sh到hadoop105。

scp -r module/* liaoyanxia@hadoop105:/opt/module/
sudo scp /etc/profile.d/my_env.sh root@hadoop105:/etc/profile.d/my_env.sh

(4)在hadoop105让环境变量生效,并且删除Hadoop历史数据即data、logs文件。

source /etc/profile
rm -rf data/ logs/

(5)配置在hadoop102和hadoop103到hadoop105的ssh免密登录。

ssh-copy-id hadoop105

(6)在hadoop105直接启动DataNode,单点启动hdfs和yarn,可关联到集群。

hdfs --daemon start datanode
yarn --daemon start nodemanager

在这里插入图片描述

2 添加白名单

  白名单:在白名单的主机IP可以访问集群,用于存储数据。
  不在白名单上的主机可以访问集群,但是不能存储数据。配置白名单可以一定程度上防止黑客攻击。
在这里插入图片描述
配置白名单步骤:
(1)在NameNode节点的hadoop-3.3.1/etc/hadoop创建whitelist和blacklist文件,白名单whitelist中添加主机名称102、103、104,黑名单为空白。

touch blacklist

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

<!-- 白名单 -->
<property>
     <name>dfs.hosts</name>
     <value>/opt/module/hadoop-3.3.1/etc/hadoop/whitelist</value>
</property>

<!-- 黑名单 -->
<property>
     <name>dfs.hosts.exclude</name>
     <value>/opt/module/hadoop-3.3.1/etc/hadoop/blacklist</value>
</property>

(3)分发whitelist,hdfs-site.xml,重启集群,如果不是第一次添加白名单只需要刷新NameNode节点就可以。

xsync hdfs-site.xml whitelist blacklist

(4)在web查看DataNode,http://hadoop102:9870/dfshealth.html#tab-datanode,只有在白名单的主机节点。
在这里插入图片描述
(5)在hadoop105上传数据失败(不在白名单的主机可以访问集群,但是不能存储数据)

hadoop fs -put test105.txt /

在这里插入图片描述
(6)把hadoop105加到白名单上,分发白名单,刷新NameNode(接1 服役新服务器)

vim whitelist   然后添加 hadoop105
xsync whitelist
hdfs dfsadmin -refreshNodes

在这里插入图片描述
(7)在hadoop105上传文件。

hadoop fs -put test105.txt /

在这里插入图片描述
在这里插入图片描述
  在hadoop105提交任务,则必然显示105,因为就近原则选择节点距离最近的,先选择本地,也就是105的距离为0,别的节点距离为1。

  当前存在一个情况:hadoop105数据少,别的节点数据多,即数据不均衡问题。

3 服务器间数据均衡

  可能出现两种情况:经常在某些节点上提交任务,由于本地原则,导致这些节点的数据过多,别的节点存储数据量小;新服役的服务器数据量较少。这两种情况需要执行集群均衡命令。

  PS:由于HDFS需要启动单独的Rebalance Server来执行Rebalance操作,所以尽量不要在NameNode上执行start-balancer.sh,而是找一台比较空闲的机器。
在这里插入图片描述
  开启数据均衡命令,参数10,代表的是集群中各个节点的磁盘空间利用率相差不超过10%(也就是任何两个节点的数据都不超过10%),可根据实际情况进行调整:

sbin/start-balancer.sh -threshold 10

停止数据均衡命令:

sbin/stop-balancer.sh

4 黑名单退役服务器

  黑名单:黑名单里的主机不能用来存储数据,企业设置黑名单用于退役服务器。
在这里插入图片描述
(1)在blacklist文件中添加要退役节点:hadoop105。且hdfs-site.xml中有黑名单的配置参数:

<!-- 黑名单 -->
<property>
     <name>dfs.hosts.exclude</name>
     <value>/opt/module/hadoop-3.3.1/etc/hadoop/blacklist</value>
</property>

(2)分发blacklist和hdfs-site.xml,第一次添加黑名单需要重启集群,否则只用刷新NameNode节点。

xsync blacklist hdfs-site.xml
hdfs dfsadmin -refreshNodes

(3)检查Web浏览器,退役节点的状态为decommission in progress(退役中),说明数据节点正在复制块(退役节点的副本)到其他节点。
在这里插入图片描述
(4)等待退役节点状态为decommissioned(所有块已经复制完成),停止该节点及节点资源管理器。

hdfs --daemon stop datanode
yarn --daemon stop nodemanager

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

sbin/start-balancer.sh -threshold 10
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。