公开课回放地址:https://www.bilibili.com/video/BV11p4y1o7Yc
背景
为什么要扩容?
- 存储容量不足:当集群的存储空间接近或达到最大容量时,可能需要扩容
- 计算资源不足:当集群中的计算资源(如CPU、内存)不足以应对负载增加时,需要进行扩容以提供更多的计算能力。
- 数据处理需求增加:如果集群上的数据处理任务数量和工作负载增加,可能需要扩容以提高整体性能和处理能力
- 高可用性要求:如果集群的高可用性和冗余需求增加,可能需要扩展集群以提供更多的冗余和故障容错能力
1.准备环境
1.1 启动CDH公有镜像

等待启动CDH镜像

知识回顾:安装CDH大概的步骤是什么?
1,关闭防火墙和selinux
2,配置hostname
3,配置hosts文件
4,配置服务器之间免密码登录
5,配置NTP时间同步
6,安装jdk 并配置环境变量
7,安装httpd
8,安装mysql
9,配置yum源
10,安装CM相关服务
11,安装CDH
1.2 打开远程桌面访问CM管理界面

重启CM服务和CDH集群

2 添加节点
2.1 添加一个新的服务器

2.2 修改hostname

2.3 修改hosts文件

2.4 重启镜像让主机名生效

3 新节点环境准备
3.1 在CDH原节点的hosts中添加新机器的ip映射信息

分发给新节点,并查看

3.2 安装jdk
rpm -ivh /public/software/java/jdk-8u144-linux-x64.rpm
配置环境变量

是环境变量生效
source /etc/profile
3.3 拷贝mysql驱动包
#一定要是这个目录
mkdir -p /usr/share/java
#jar包一定要是mysql-connector-java.jar
cp /public/software/database/mysql-connector-java-5.1.49.jar /usr/share/java/mysql-connector-java.jar
3.4 配置Cloudera yum源
[cloudera-manager]
name = Cloudera Manager, Version
baseurl = http://cdh1-34680/cm6.3.1/
enabled=1
gpgcheck=0
1 安装wget
yum install -y wget
2 备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
3 华为yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
将clouderayum 源拷贝到新机器
scp cloudera-manager.repo worker-4:/etc/yum.repos.d/
4 清理缓存
yum clean all
5 重新生成缓存
yum makecache
6 查看yum源信息
yum repolist
3.5 安装CM agent
yum install -y cloudera-manager-agent

3.5.1 配置agent

3.6 启动 CM agent
cp /public/software/other/systemctl /usr/bin
systemctl start supervisord
systemctl start cloudera-scm-agent4 cdh添加新节点

添加节点到已有集群

选择被管理的agent

等待分配激活完成

选择主机模板 None,后期自己添加

更新客户端

此时新主机已经添加成功

5 功能演示之hdfs数据平衡
原CDH集群datanode数据存放占用磁盘空间如下:

5.1 给新节点分配角色
1,hdfs添加datanode到worker-4


2.yarn添加nodemanager到worker-4


5.2 将datanode可用磁盘容量做限制
修改datanode可用磁盘空间
#每个存储卷保留用作其他用途的磁盘大小
dfs.datanode.du.reserved

影响Balancer的参数:
- -threshold
- 默认设置:10,参数取值范围:1-100
- 参数含义:datanode间磁盘使用率相差阈值。理论上,该参数设置的越小,整个集群就越平衡

5.3 HDFS Rebalance
修改完hdfs磁盘空间之后的使用情况

执行rebalance
发现数据已经平衡在新的节点。
