1. 相关环境准备
FE: /opt/starrocks
BE: /opt/starrocks
安装包下载
shell
wget https://releases.starrocks.io/starrocks/StarRocks-3.1.0.tar.gz
解压缩
shell
tar -zxvf StarRocks-3.1.0.tar.gz
安装jdk (v2.5 及以上版本建议安装 JDK 11,我们使用jdk17)
jdk路径:/opt/starrocks/jdk-17
2. 启动FE
- 创建元数据存储路径。将元数据存储在与 FE 部署文件不同的路径中。
shell
cd /opt/starrocks/
mkdir -p meta_data
# 赋予读写权限
chmod 777 -R meta_data/
- 修改配置文件
shell
vim /opt/starrocks/StarRocks-3.1.0/fe/conf/fe.conf
# 修改元数据路径
meta_dir = /opt/starrocks/meta_data
# 修改端口(可选操作,若端口被占用,可在此处修改)
http_port = 8030 # 默认值:8030
rpc_port = 9020 # 默认值:9020
query_port = 9030 # 默认值:9030
edit_log_port = 9010 # 默认值:9010
# 启用IP地址访问
priority_networks = 192.168.192.41
# 指定Java环境访问路径
JAVA_HOME = /opt/starrocks/jdk-17
- 启动FE
shell
sh /opt/starrocks/StarRocks-3.1.0/fe/bin/start_fe.sh --daemon
- 查看 FE日志
shell
cat /opt/starrocks/StarRocks-3.1.0/fe/log/fe.log | grep thrift
如果打印以下内容,说明启动成功:
3. 启动BE
- 创建数据存储路径。将数据存储在与 BE 部署文件不同的路径中。
shell
cd /opt/starrocks/
mkdir -p storage_data
# 赋予读写权限
chmod 777 -R storage_data/
- 修改配置文件
shell
vim /opt/starrocks/StarRocks-3.1.0/be/conf/be.conf
# 修改数据存储路径
storage_root_path = /opt/starrocks/storage_data
# 修改端口(可选操作,若端口被占用,可在此处修改)
be_port = 9060 # 默认值:9060
be_http_port = 8040 # 默认值:8040
heartbeat_service_port = 9050 # 默认值:9050
brpc_port = 8060 # 默认值:8060
# 启用IP地址访问
priority_networks = 172.16.1.9
# 指定Java环境访问路径
JAVA_HOME = /opt/starrocks/jdk-17
- 启动BE
shell
sh /opt/starrocks/StarRocks-3.1.0/be/bin/start_be.sh --daemon
- 查看BE日志
shell
cat /opt/starrocks/StarRocks-3.1.0/be/log/be.INFO | grep heartbeat
如果打印以下内容,说明启动成功
4. 搭建集群
当FE 和BE启动成功后,通过mysql客户端(5.5.0 或更高版本)连接StarRocks。
- 通过 MySQL 客户端连接到 StarRocks。需要使用初始用户 root 登录,密码默认为空。
sql
# 将 <fe_address> 替换为 Leader FE 节点的 IP 地址(priority_networks)或 FQDN,
# 并将 <query_port>(默认:9030)替换为您在 fe.conf 中指定的 query_port。
mysql -h <fe_address> -P<query_port> -uroot
- 执行查看FE状态
sql
SHOW PROC '/frontends'\G
- 如果字段 Alive 为 true,说明该 FE 节点正常启动并加入集群。
- 如果字段 Role 为 FOLLOWER,说明该 FE 节点有资格被选为 Leader FE 节点。
- 如果字段 Role 为 LEADER,说明该 FE 节点为 Leader FE 节点。
- 将BE添加到集群
sql
-- 将 <be_address> 替换为 BE 节点的 IP 地址(priority_networks)或 FQDN,
-- 并将 <heartbeat_service_port>(默认:9050)替换为您在 be.conf 中指定的 heartbeat_service_port。
ALTER SYSTEM ADD BACKEND "<be_address>:<heartbeat_service_port>", "<be2_address>:<heartbeat_service_port>", "<be3_address>:<heartbeat_service_port>";
- 查看BE状态
sql
SHOW PROC '/backends'\G
如果字段 Alive 为 true,说明该 BE 节点正常启动并加入集群。
5. 其他配置
- 设置root用户密码
使用用户名 root 和空密码通过 MySQL 客户端连接到 StarRocks。
shell
# 将 <fe_address> 替换为您连接的 FE 节点的 IP 地址(priority_networks)
# 或 FQDN,将 <query_port> 替换为您在 fe.conf 中指定的 query_port(默认:9030)。
mysql -h <fe_address> -P<query_port> -uroot
设置密码
sql
-- 将 <password> 替换为您要为 root 用户设置的密码。
SET PASSWORD = PASSWORD('<password>');
- 设置系统变量
为使 StarRocks 集群在生产环境中正常工作,您需要设置以下系统变量:
|变量名|版本|推荐值|说明|
|--|--|--|--|
|is_report_success|v2.4 或更早|false|是否发送查询 Profile 以供分析。默认值为 false,即不发送。将此变量设置为 true 会影响 StarRocks 的并发性能。|
|enable_profile|v2.5 或以后|false|是否发送查询 Profile 以供分析。默认值为 false,即不发送。将此变量设置为 true 会影响 StarRocks 的并发性能。|
|enable_pipeline_engine|v2.3 或以后|true|是否启用 Pipeline Engine。true 表示启用,false 表示禁用。默认值为 true。|
|parallel_fragment_exec_instance_num|v2.3 或以后|如果您启用了 Pipeline Engine,您可以将此变量设置为1。如果您未启用 Pipeline Engine,您可以将此变量设置为 CPU 核数的一半|每个 BE 上用于扫描节点的实例数。默认值为 1。|
|pipeline_dop|v2.3、v2.4 及 v2.5|0|Pipeline 实例的并行度,用于调整查询并发度。默认值:0,表示系统自动调整每个 Pipeline 实例的并行度。|
shell
# 全局设置 is_report_success 为 false
SET GLOBAL is_report_success = false;
# 全局设置 enable_profile 为 false
SET GLOBAL enable_profile = false;
# 全局设置 enable_pipeline_engine 为 true
SET GLOBAL enable_pipeline_engine = true;
# 全局设置 parallel_fragment_exec_instance_num 为 1
SET GLOBAL parallel_fragment_exec_instance_num = 1;
# 全局设置 pipeline_dop 为 0
SET GLOBAL pipeline_dop = 0;
6. 远程连接
- 使用navicat连接:
端口:9030 用户名:root