StarRocks 是新一代的 MPP 数据库,它具有很高的查询性能,能够支持各种场景的数据查询分析使用,主要包含如下几个场景:
- OLAP多维分析
- 实时数据分析
- 高并发查询
- 统一分析
关于 StarRocks 更详细的介绍,可以查看官方文档,非常详细(见后面参考链接)。
下面,我们基于开源的 StarRocks 社区版,版本是 2.1.5 来进行集群的安装配置。StarRocks 集群的部署模式,采用 FE 与 BE 分离的模式。
集群部署规划
1 基础环境和软件
软件 | 版本 |
操作系统 | CentOS-7.8 |
StarRocks | 2.1.5 |
JDK | jdk1.8.0_212 |
MySQL Client | 5.7.37 |
2 集群主机规划
IP 地址 | 主机名称 | 角色 | 备注信息 |
172.168.0.1 | VM-0-1-centos | FE | FE Master |
172.168.0.2 | VM-0-2-centos | FE | FE OBSERVER |
172.168.0.3 | VM-0-3-centos | FE | FE FOLLOWER |
172.168.0.4 | VM-0-4-centos | BE | BE |
172.168.0.5 | VM-0-5-centos | BE | BE |
172.168.0.6 | VM-0-6-centos | BE | BE |
172.168.0.7 | VM-0-7-centos | BE | BE |
172.168.0.8 | VM-0-8-centos | BE | BE |
172.168.0.9 | VM-0-9-centos | BE | BE |
3 集群主机目录规划
IP 地址 | 主机名称 | 角色 |
JDK 目录 | /usr/local/share/jdk1.8.0_202 | /usr/local/share/java |
StarRocks 程序目录 | /usr/local/share/StarRocks-2.1.5 | /usr/local/share/starrocks |
StarRocks 数据根目录 | data/starrocks/storage | 无 |
StarRocks FE 元数据目录 | /data/starrocks/storage/fe/meta | 无 |
StarRocks BE 数据存储目录 | /data/starrocks/storage/be | 无 |
集群部署准备
1 添加 IP 到主机名映射信息
在 172.168.0.1~172.168.0.9 这 9 个节点上,修改 /etc/hosts,添加如下内容:
172.168.0.1 VM-0-1-centos 172.168.0.2 VM-0-2-centos 172.168.0.3 VM-0-3-centos 172.168.0.4 VM-0-4-centos 172.168.0.5 VM-0-5-centos 172.168.0.6 VM-0-6-centos 172.168.0.7 VM-0-7-centos 172.168.0.8 VM-0-8-centos 172.168.0.9 VM-0-9-centos
2 优化 StarRocks 集群主机内存配置
在 172.168.0.1~172.168.0.9 这 9 个节点上,执行如下命令:
echo 0 | sudo tee /proc/sys/vm/swappiness echo 1 | sudo tee /proc/sys/vm/overcommit_memory echo 'madvise' | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
3 基础软件:JDK 安装配置
下载 JDK 1.8.0_202,解压缩。将解压缩后的目录,分别拷贝到 172.168.0.1~172.168.0.9 这 9 个节点上的目录 /usr/local/share/ 下面,并创建软链接:
ln -s /usr/local/share/jdk1.8.0_202 /usr/local/share/java
配置 JDK 环境变量,修改 ~/.bashrc 文件,添加如下环境变量内容行:
export JAVA_HOME=/usr/local/share/java export CLASSPATH=.:$JAVA_HOME/lib/*.jar:$JAVA_HOME/jre/lib/*.jar export PATH=$PATH:$JAVA_HOME/bin
使环境变量生效:
source ~/.bashrc
验证 JDK 安装成功,执行下面命令:
java -version
4 安装 MySQL Client
从 https://downloads.mysql.com/archives/community/ 这里下载如下 3 个 rpm 包:
mysql-community-common-5.7.37-1.el7.x86_64.rpm mysql-community-libs-5.7.37-1.el7.x86_64.rpm mysql-community-client-5.7.37-1.el7.x86_64.rpm
分别拷贝到 172.168.0.1~172.168.0.9 这 9 个节点上,并按顺序执行如下命令行,安装 MySQL Client:
rpm -e mariadb-libs --nodeps rpm -ivh mysql-community-common-5.7.37-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.37-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.37-1.el7.x86_64.rpm
如果执行上述命令没有报错,说明安装成功。
5 下载并准备 StarRocks 安装包
从 https://www.starrocks.com/en-US/download/community 这里下载社区版本 2.1.5 二进制安装包,并在其中一个节点 172.168.0.1 上安装配置 StarRocks。 解压缩 StarRocks 安装包,并拷贝到 /usr/local/share/ 目录下:
tar xvzf StarRocks-2.1.5.tar.gz mv StarRocks-2.1.5 /usr/local/share/ ln -s /usr/local/share/StarRocks-2.1.5 /usr/local/share/starrocks
配置 StarRocks 环境变量,在 ~/.bashrc 中添加如下内容行:
export STARROCKS_HOME=/usr/local/share/starrocks
使环境变量生效:
source ~/.bashrc
修改 StarRocks FE 配置文件 /usr/local/share/starrocks/fe/conf/fe.conf,修改下面的几个配置项:
meta_dir = /data/starrocks/storage/fe/meta priority_networks = 172.168.0.1/16
修改 StarRocks BE 配置文件 /usr/local/share/starrocks/be/conf/be.conf,修改下面的几个配置项:
storage_root_path = /data/starrocks/storage/be
创建 StarRocks 程序目录和相关的数据目录:
mkdir -p /data/starrocks/storage mkdir -p /data/starrocks/storage/fe/meta mkdir -p /data/starrocks/storage/be
将配置好的 StarRocks 安装文件 /usr/local/share/StarRocks-2.1.5,远程拷贝到 172.168.0.2 ~ 172.168.0.9 这 8 个节点上,并按照上述配置过程, 配置对应的环境变量、创建目录。
启动 StarRocks 集群
1 启动 FE
在 FE 节点 172.168.0.1 上启动 FE:
bin/start_fe.sh --daemon
通过 MySQL Client 登录(默认没有密码):
mysql -h VM-0-1-centos -P9030 -uroot
然后,将所有的 FE 节点添加到集群中:
ALTER SYSTEM ADD FOLLOWER "VM-0-2-centos:9010 "; ALTER SYSTEM ADD OBSERVER "VM-0-3-centos:9010 ";
打开页面 http://172.168.0.1:8030/,如果能看到对应的 Web 控制台信息,则启动 FE 成功。 也可以查看对应的日志文件 /usr/local/share/starrocks/fe/log/ ,检查状态是否正常。 分别登录到 VM-0-2-centos、VM-0-3-centos 节点上,启动 FE 并加入到集群中:
bin/start_fe.sh --helper VM-0-1-centos:9010 --daemon
可以通过打开页面 http://172.168.0.2:8030/、http://172.168.0.3:8030/ 分别查看状态,也可以查看日志来验证。
在 FE 节点 172.168.0.1 上.再将所有的 BE 节点都加入到集群中:
ALTER SYSTEM ADD BACKEND "VM-0-4-centos:9050"; ALTER SYSTEM ADD BACKEND "VM-0-5-centos:9050"; ALTER SYSTEM ADD BACKEND "VM-0-6-centos:9050"; ALTER SYSTEM ADD BACKEND "VM-0-7-centos:9050"; ALTER SYSTEM ADD BACKEND "VM-0-8-centos:9050"; ALTER SYSTEM ADD BACKEND "VM-0-9-centos:9050";
2 启动 BE
分别登录到主机 172.168.0.4 ~ 172.168.0.9 上,启动 BE 服务,并添加到集群中。下面以 172.168.0.4 为例来说明。
bin/start_be.sh --daemon
通过 MySQL Client 连接到 StarRocks 集群:
mysql -h VM-0-1-centos -P9030 -uroot
查看验证 BE 状态:
SHOW PROC '/backends'\G
查看的信息,示例如下所示(每次查询内容可能会有不同):
mysql> SHOW PROC '/backends'\G *************************** 1. row *************************** BackendId: 10003 Cluster: default_cluster IP: 172.168.0.6 HostName: VM_0_6_centos HeartbeatPort: 9050 BePort: 9060 HttpPort: 8040 BrpcPort: 8060 LastStartTime: 2022-08-31 20:19:30 LastHeartbeat: 2022-08-31 20:32:28 Alive: true SystemDecommissioned: false ClusterDecommissioned: false TabletNum: 12 DataUsedCapacity: 2.017 TB AvailCapacity: 866.141 GB TotalCapacity: 2.121 TB UsedPct: 78.47 % MaxDiskUsedPct: 78.47 % ErrMsg: Version: 2.1.5-2a5c43f Status: {"lastSuccessReportTabletsTime":"2022-08-31 20:32:27"} DataTotalCapacity: 2.062 TB DataUsedPct: 78.18 % *************************** 2. row *************************** BackendId: 10030 Cluster: default_cluster IP: 172.168.0.8 HostName: VM_0_8_centos HeartbeatPort: 9050 BePort: 9060 HttpPort: 8040 BrpcPort: 8060 LastStartTime: 2022-08-31 20:20:35 LastHeartbeat: 2022-08-31 20:32:28 Alive: true SystemDecommissioned: false ClusterDecommissioned: false TabletNum: 74835 DataUsedCapacity: 3.186 TB AvailCapacity: 832.304 GB TotalCapacity: 4.121 TB UsedPct: 83.18 % MaxDiskUsedPct: 83.18 % ErrMsg: Version: 2.1.5-2a5c43f Status: {"lastSuccessReportTabletsTime":"2022-08-31 20:31:35"} DataTotalCapacity: 3.999 TB DataUsedPct: 78.67 % *************************** 3. row *************************** BackendId: 1987731 Cluster: default_cluster IP: 172.168.0.9 HostName: VM_0_9_centos HeartbeatPort: 9050 BePort: 9060 HttpPort: 8040 BrpcPort: 8060 LastStartTime: 2022-08-31 20:16:01 LastHeartbeat: 2022-08-31 20:32:28 Alive: true SystemDecommissioned: false ClusterDecommissioned: false TabletNum: 206 DataUsedCapacity: 19.622 GB AvailCapacity: 898.482 GB TotalCapacity: 919.551 GB UsedPct: 2.29 % MaxDiskUsedPct: 2.29 % ErrMsg: Version: 2.1.5-2a5c43f Status: {"lastSuccessReportTabletsTime":"2022-08-31 20:32:02"} DataTotalCapacity: 918.104 GB DataUsedPct: 2.14 % *************************** 4. row *************************** BackendId: 1987736 Cluster: default_cluster IP: 172.168.0.7 HostName: VM_0_7_centos HeartbeatPort: 9050 BePort: 9060 HttpPort: 8040 BrpcPort: 8060 LastStartTime: 2022-08-31 20:24:22 LastHeartbeat: 2022-08-31 20:32:28 Alive: true SystemDecommissioned: false ClusterDecommissioned: false TabletNum: 268 DataUsedCapacity: 293.098 MB AvailCapacity: 915.272 GB TotalCapacity: 919.551 GB UsedPct: 0.47 % MaxDiskUsedPct: 0.47 % ErrMsg: Version: 2.1.5-2a5c43f Status: {"lastSuccessReportTabletsTime":"2022-08-31 20:32:23"} DataTotalCapacity: 915.558 GB DataUsedPct: 0.03 % *************************** 5. row *************************** BackendId: 10031 Cluster: default_cluster IP: 172.168.0.5 HostName: VM_0_5_centos HeartbeatPort: 9050 BePort: 9060 HttpPort: 8040 BrpcPort: 8060 LastStartTime: 2022-08-31 20:18:40 LastHeartbeat: 2022-08-31 20:32:28 Alive: true SystemDecommissioned: false ClusterDecommissioned: false TabletNum: 75690 DataUsedCapacity: 2.972 TB AvailCapacity: 1.091 TB TotalCapacity: 4.121 TB UsedPct: 73.52 % MaxDiskUsedPct: 73.52 % ErrMsg: Version: 2.1.5-2a5c43f Status: {"lastSuccessReportTabletsTime":"2022-08-31 20:31:47"} DataTotalCapacity: 4.063 TB DataUsedPct: 73.15 % *************************** 6. row *************************** BackendId: 1987321 Cluster: default_cluster IP: 172.168.0.4 HostName: VM_0_4_centos HeartbeatPort: 9050 BePort: 9060 HttpPort: 8040 BrpcPort: 8060 LastStartTime: 2022-08-31 20:01:44 LastHeartbeat: 2022-08-31 20:32:28 Alive: true SystemDecommissioned: false ClusterDecommissioned: false TabletNum: 289 DataUsedCapacity: 43.929 GB AvailCapacity: 874.155 GB TotalCapacity: 919.551 GB UsedPct: 4.94 % MaxDiskUsedPct: 4.94 % ErrMsg: Version: 2.1.5-2a5c43f Status: {"lastSuccessReportTabletsTime":"2022-08-31 20:31:45"} DataTotalCapacity: 918.084 GB DataUsedPct: 4.78 % 6 rows in set (0.00 sec)
可以打开页面 http://172.168.0.1:8030/ 查看验证,也可以查看 BE 的日志来验证服务启动成功。
3 验证集群
可以打开页面 http://172.168.0.1:8030/,查看整个 StarRocks 集群的节点和状态,如果个别节点有问题,只需要登录到对应的 FE 或 BE 上查看日志信息,定位并解决问题即可。
参考资源
- https://docs.starrocks.com/zh-cn/2.1/introduction/StarRocks_intro
- https://docs.starrocks.com/zh-cn/2.1/quick_start/Deploy
- https://docs.starrocks.com/zh-cn/2.1/administration/Configuration#%E7%B3%BB%E7%BB%9F%E5%8F%82%E6%
- https://www.starrocks.com/zh-CN/download/community
本文基于署名-非商业性使用-相同方式共享 4.0许可协议发布,欢迎转载、使用、重新发布,但务必保留文章署名时延军(包含链接:http://shiyanjun.cn),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。