3.15 节点管理
已有 HDFS 集群容量已经不能满足存储数据的需求,需要在原有集群基础上动态添加新的 DataNode 节点。就是俗称的动态扩容。
旧的服务器需要进行退役更换,暂停服务,需要在当下的集群中停止某些机器上 HDFS 的服务,俗称动态缩容。
动态增加节点
准备一台新的虚拟机,保证和已有集群中任意一台机器网络通畅。
执行 2.4 集群规划安装 1-23 步,新增计算机ip为 192.168.174.138,计算机名为 slave1
注意集群 hosts 文件及增加节点 hosts 文件中加入所有机器的 ip 和机器名的映射
hosts 文件内容:
192.168.174.136 master
192.168.174.137 slave
192.168.174.138 slave1
hostname 文件内容
slave1
在主节点免密配置远程登录 slave1
ssh-copy-id -i slave1
在主节点配置文件 workers 中加入 slave1 的 ip,内容如下
master
slave
slave1
手动启动 slave1 节点
hadoop-daemon.sh start datanode
监控界面查看集群挂载情况
新加入的节点,没有数据块的存储,使得集群整体来看负载不均衡。因此最后还需要对 hdfs 负载设置均衡。首先设置数据传输带宽
hdfs dfsadmin -setBalancerBandwidth 104857600
启动 Balancer,等待集群自均衡完成即可
集群中的各个节点磁盘空间利用率相差不超过 10%
白名单配置
白名单:表示在白名单的主机 IP 地址允许访问 Namenode,不在白名单的节点,都会被集群排除在外。 企业中:配置白名单,可以尽量防止黑客恶意访问攻击。
设置白名单节点
进入 hadoop 配置文件位置
cd /home/briup/software/hadoop/etc/hadoop/
编辑文件
vi whitelist内容如下:
master
slave
slave1
修改配置文件 hdfs-site.xml,追加内容如下
<property>
<name>dfs.hosts.exclude</name>
<value>/home/briup/software/hadoop/etc/hadoop/whitelist</value>
</property>
3.配置文件分发
xsync whitelist
xsync hdfs-site.xml
刷新集群
hdfs dfsadmin -refreshNodes
yarn rmadmin -refreshNodes
负载均衡集群
hdfs balancer -threshold 10注意:如果集群中其中某个节点配置白名单没有添加,该节点的数据会搬运到白名单组成的集群中在排除
动态节点下线(缩容)
在 NameNode 机器的 hdfs-site.xml 配置文件中需要提前配置 dfs.hosts.exclude 属性,该属性指向的文件就是所谓的黑名单列表,会被 NameNode 排除在集群之外。如果文件内容为空,则意味着不禁止任何机器。
提前配置好的目的是让 NameNode 启动的时候就能加载到该属性,只不过还没有指定任何机器。否则就需要重启NameNode 才能加载,因此这样的操作我们称之为具有前瞻性的操作。
添加下线节点
进入 hadoop 配置文件位置
cd /home/briup/software/hadoop/etc/hadoop/编辑文件
vi excludes
内容如下:
slave1
修改配置文件 hdfs-site.xml,追加内容如下
<property>
<name>dfs.hosts.exclude</name>
<value>/home/briup/software/hadoop/etc/hadoop/excludes</value>
</property>
如果副本数是 3,服役的节点小于等于 3,是不能退役成功的,需要修改副本数后才能退役
配置文件分发
xsync whitelist
xsync hdfs-site.xml
在 namenode、ResourceManager 所在的机器刷新节点
刷新集群
hdfs dfsadmin -refreshNodes
yarn rmadmin -refreshNodes
等待退役节点状态为 decommissioned(所有块已经复制完成)
退役中
已退役
手动关闭 Datanode 进程
hadoop-daemon.sh stop datanode
hadoop-daemon.sh stop nodemanager
Datanode 启动负载均衡,命令在集群 NameNode 中执行
hdfs balancer -threshold 10