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

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配置参数。

dfs.hosts

/opt/module/hadoop-3.3.1/etc/hadoop/whitelist

dfs.hosts.exclude

/opt/module/hadoop-3.3.1/etc/hadoop/blacklist

(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中有黑名单的配置参数:

dfs.hosts.exclude

/opt/module/hadoop-3.3.1/etc/hadoop/blacklist

(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

推荐链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: