StarRocks数据库集群的完整部署流程
目录
依赖环境
下载安装包
部署FE
部署BE
搭建集群
停止集群
依赖环境
详见:StarRocks 部署:依赖环境-CSDN博客
下载安装包
在官方网站下载安装包:StarRocks
部署FE
-
创建元数据目录。
mkdir -p <meta_dir>
-
修改 FE 配置文件 fe/conf/fe.conf。
a. 指定元数据路径。
meta_dir = <meta_dir>
b. 修改端口。
http_port = 8030 # 默认值:8030 rpc_port = 9020 # 默认值:9020 query_port = 9030 # 默认值:9030 edit_log_port = 9010 # 默认值:9010
c. 启用 IP 地址访问
priority_networks = x.x.x.x/x
d. 配置节点数
# 默认值是3 default_replication_num = 1
e.开启udf
enable_udf=true
-
启动 FE 节点。
./fe/bin/start_fe.sh --daemon
部署BE
-
创建数据存储目录。
mkdir -p <storage_root_path>
-
修改配置文件 be/conf/be.conf。
a. 修改配置项
storage_root_path = <storage_root_path> mem_limit = 32G
b. 修改端口,如果不需要可跳过此步骤。
be_port = 9060 # 默认值:9060 be_http_port = 8040 # 默认值:8040 heartbeat_service_port = 9050 # 默认值:9050 brpc_port = 8060 # 默认值:8060
c. 启用 IP 地址访问
priority_networks = x.x.x.x/x
d. 配置JAVA_HOME
JAVA_HOME=xxxxxxx
-
启动 BE 节点。
./be/bin/start_be.sh --daemon
搭建集群
当所有 FE 和 BE/CN 节点启动成功后,即可搭建 StarRocks 集群。
-
通过 MySQL 客户端连接到 StarRocks。需要使用初始用户
root
登录,密码默认为空。# 将 <fe_address> 替换为 Leader FE 节点的 IP 地址(priority_networks) # 将 <query_port>(默认:9030)替换为在 fe.conf 中指定的 query_port。 mysql -h <fe_address> -P<query_port> -uroot
-
查看 Leader FE 节点状态。
SHOW PROC '/frontends'\G
示例:
MySQL [(none)]> SHOW PROC '/frontends'\G *************************** 1. row ***************************Name: x.x.x.x_9010_1686810741121IP: x.x.x.xEditLogPort: 9010HttpPort: 8030QueryPort: 9030RpcPort: 9020Role: LEADERClusterId: 919351034Join: trueAlive: true ReplayedJournalId: 1220LastHeartbeat: 2023-06-15 15:39:04IsHelper: trueErrMsg: StartTime: 2023-06-15 14:32:28Version: 3.0.0-48f4d81 1 row in set (0.01 sec)
-
如果字段
Alive
为true
,说明该 FE 节点正常启动并加入集群。 -
如果字段
Role
为FOLLOWER
,说明该 FE 节点有资格被选为 Leader FE 节点。 -
如果字段
Role
为LEADER
,说明该 FE 节点为 Leader FE 节点。
-
-
添加 BE 节点至集群。
-- 将 <be_address> 替换为 BE 节点的 IP 地址(priority_networks) -- 并将 <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>";
说明
可以通过一条 SQL 添加多个 BE 节点。每对
<be_address>:<heartbeat_service_port>
代表一个 BE 节点。 -
查看 BE 节点状态。
SHOW PROC '/backends'\G
示例:
MySQL [(none)]> SHOW PROC '/backends'\G *************************** 1. row ***************************BackendId: 10007IP: 172.26.195.67HeartbeatPort: 9050BePort: 9060HttpPort: 8040BrpcPort: 8060LastStartTime: 2023-06-15 15:23:08LastHeartbeat: 2023-06-15 15:57:30Alive: trueSystemDecommissioned: false ClusterDecommissioned: falseTabletNum: 30DataUsedCapacity: 0.000 AvailCapacity: 341.965 GBTotalCapacity: 1.968 TBUsedPct: 83.04 %MaxDiskUsedPct: 83.04 %ErrMsg: Version: 3.0.0-48f4d81Status: {"lastSuccessReportTabletsTime":"2023-06-15 15:57:08"}DataTotalCapacity: 341.965 GBDataUsedPct: 0.00 %CpuCores: 16NumRunningQueries: 0MemUsedPct: 0.01 %CpuUsedPct: 0.0 %
如果字段
Alive
为true
,说明该 BE 节点正常启动并加入集群。
停止集群
-
停止 FE 节点。
./fe/bin/stop_fe.sh --daemon
-
停止 BE 节点。
./be/bin/stop_be.sh --daemon