StarRocks-2.1.5 集群安装部署

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 上查看日志信息,定位并解决问题即可。

参考资源

Creative Commons License

本文基于署名-非商业性使用-相同方式共享 4.0许可协议发布,欢迎转载、使用、重新发布,但务必保留文章署名时延军(包含链接:http://shiyanjun.cn),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>