StarRocks-3.1.0 单节点部署

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

  1. 创建元数据存储路径。将元数据存储在与 FE 部署文件不同的路径中。
shell 复制代码
cd /opt/starrocks/

mkdir -p meta_data

# 赋予读写权限
chmod 777 -R meta_data/
  1. 修改配置文件
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
  1. 启动FE
shell 复制代码
sh /opt/starrocks/StarRocks-3.1.0/fe/bin/start_fe.sh --daemon
  1. 查看 FE日志
shell 复制代码
cat /opt/starrocks/StarRocks-3.1.0/fe/log/fe.log | grep thrift

如果打印以下内容,说明启动成功:

3. 启动BE

  1. 创建数据存储路径。将数据存储在与 BE 部署文件不同的路径中。
shell 复制代码
cd /opt/starrocks/

mkdir -p storage_data

# 赋予读写权限
chmod 777 -R storage_data/
  1. 修改配置文件
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
  1. 启动BE
shell 复制代码
sh /opt/starrocks/StarRocks-3.1.0/be/bin/start_be.sh --daemon
  1. 查看BE日志
shell 复制代码
cat /opt/starrocks/StarRocks-3.1.0/be/log/be.INFO | grep heartbeat

如果打印以下内容,说明启动成功

4. 搭建集群

当FE 和BE启动成功后,通过mysql客户端(5.5.0 或更高版本)连接StarRocks。

  1. 通过 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
  1. 执行查看FE状态
sql 复制代码
SHOW PROC '/frontends'\G
  • 如果字段 Alive 为 true,说明该 FE 节点正常启动并加入集群。
  • 如果字段 Role 为 FOLLOWER,说明该 FE 节点有资格被选为 Leader FE 节点。
  • 如果字段 Role 为 LEADER,说明该 FE 节点为 Leader FE 节点。
  1. 将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>";
  1. 查看BE状态
sql 复制代码
SHOW PROC '/backends'\G

如果字段 Alive 为 true,说明该 BE 节点正常启动并加入集群。

5. 其他配置

  1. 设置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>');
  1. 设置系统变量
    为使 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. 远程连接

  1. 使用navicat连接:
    端口:9030 用户名:root
相关推荐
互联网中的一颗神经元12 分钟前
小白python入门 - 6. Python 分支结构——逻辑决策的核心机制
开发语言·数据库·python
数据库知识分享者小北25 分钟前
AI Agent的未来之争:任务规划,该由人主导还是AI自主?——阿里云RDS AI助手的最佳实践
数据库·阿里云·数据库rds
凸头31 分钟前
MySQL 的四种 Binlog 日志处理工具:Canal、Maxwell、Databus和 阿里云 DTS
数据库·mysql·阿里云
阿方索39 分钟前
虚拟化技术实践指南:KVM 与 VMware ESXi 部署全流程
linux·运维·服务器
码界奇点1 小时前
MongoDB 排序操作详解sort方法使用指南
数据库·mongodb·性能优化
武子康1 小时前
Java-155 MongoDB Spring Boot 连接实战 | Template vs Repository(含索引与常见坑)
java·数据库·spring boot·后端·mongodb·系统架构·nosql
武子康1 小时前
Java-157 MongoDB 存储引擎 WiredTiger vs InMemory:何时用、怎么配、如何验证 mongod.conf
java·数据库·sql·mongodb·性能优化·系统架构·nosql
野犬寒鸦1 小时前
从零起步学习MySQL || 第八章:索引深入理解及高级运用(结合常见优化问题讲解)
java·服务器·数据库·后端·mysql
奥尔特星云大使1 小时前
Docker 拉取 MySQL 5.7 镜像、启动容器并进入 MySQL
数据库·mysql·docker·容器