一. 集群规划
部署文档
https://docs.starrocks.io/zh/docs/2.5/deployment/plan_cluster/
分类 | 描述 |
---|---|
FE节点 | 1. 主要负责元数据管理、客户端连接管理、查询计划和查询调度。 2. 三个节点实现高可用以及请求的流量转发, 对于请求的高可用和流量转发使用 nginx 实现。(对于单宿主机来说:这里的fe部署一个) 3. 建议为每个 FE 节点分配 8 个 CPU 内核和 16GB RAM,在大多数场景下,每个 FE 节点只需要 100GB 的 HDD 存储。 |
BE节点 | 1. 负责数据存储和 SQL 执行。 2. 对于 StarRocks 生产集群,建议至少部署三个 BE 节点,这些节点会自动形成一个 BE 高可用集群,避免单点故障影响数据可靠性和服务可用性。 3. 建议为每个 BE 节点分配 16 个 CPU 内核和 64GB RAM。 4. StarRocks 集群所有 BE 节点所需的 – 总存储空间 = 原始数据大小 x 数据副本数/数据压缩算法压缩比 – 原始数据大小 = 单行数据大小 x 总数据行数 |
说明
1.FE 节点:负责元数据管理、客户端连接、查询调度等任务,配置要求较低。
2.BE 节点:负责数据存储和 SQL 查询执行,配置要求较高,尤其是 CPU 和内存。
3.存储空间估算公式:根据数据大小、数据副本数和压缩比来计算 BE 节点的存储需求。
二.docker compose以及启动脚本
参考:
https://github.com/StarRocks/demo/blob/master/deploy/docker-compose/docker-compose-3BE.yml
# 定义starrocks be共用配置
x-starrocks-be-common: &starrocks-be-common
image: starrocks/be-ubuntu:3.2.12
command:
- /bin/bash
- -c
- |
chmod +x /data/starrocks/be_entrypoint.sh
/data/starrocks/be_entrypoint.sh starrocks-fe-0
environment:
- HOST_TYPE=FQDN
- TZ=Asia/Shanghai
- MYSQL_ROOT_PASSWORD=1111111
depends_on:
- starrocks-fe-0
restart: always
networks: # network config, can be configured to your preferred port and ip address, if not specified, it will use default network and assign a dynamic ip
starrocks-network:
services:
# starrocks:1 fe 3be
starrocks-fe-0:
image: starrocks/fe-ubuntu:3.2.12
hostname: starrocks-fe-0
container_name: starrocks-fe-0
command:
- /bin/bash
- -c
- |
/opt/starrocks/fe_entrypoint.sh starrocks-fe-0
environment:
- HOST_TYPE=FQDN
- TZ=Asia/Shanghai
- MYSQL_ROOT_PASSWORD=11111111
ports:
- "1030:8030" # Frontend service port (HTTP)
- "2020:9020" # Backend service port (HTTP)
- "3030:9030" # Frontend service port (MySQL)
volumes:
- './starrocks/fe-0/meta:/opt/starrocks/fe/meta:rw'
- './starrocks/fe-0/log:/opt/starrocks/fe/log:rw'
restart: always
networks: # network config, can be configured to your preferred port and ip address, if not specified, it will use default network and assign a dynamic ip
starrocks-network:
starrocks-be-0:
<<: *starrocks-be-common
hostname: starrocks-be-0
container_name: starrocks-be-0
volumes:
- './starrocks/be-0/storage:/opt/starrocks/be/storage:rw'
- './starrocks/be-0/log:/opt/starrocks/be/log:rw'
- './sr/bin:/data/starrocks:rwx'
starrocks-be-1:
<<: *starrocks-be-common
hostname: starrocks-be-1
container_name: starrocks-be-1
volumes:
- './starrocks/be-1/storage:/opt/starrocks/be/storage:rw'
- './starrocks/be-1/log:/opt/starrocks/be/log:rw'