第2.1章:StarRocks表设计--概述

本文介绍了StarRocks的表设计,包括数据模型选择、分区、分桶、排序键和索引。通过一个示例展示了如何创建聚合模型分区表,强调了维度列和指标列的概念,并解释了如何利用分区和分桶优化查询性能。

建表是使用StarRocks非常重要的一环,规范的表设计在某些场景下甚至能使查询性能有数倍的提升。StarRocks的表设计涉及到的知识点主要包括数据模型选择、分区分桶、排序键和前缀索引、列级别索引以及字段类型等等。

StarRocks的建表语句与MySQL比较相似,但也有自己的特点。我们先在StarRocks中创建一个演示用的数据库starrocks(后续所有的建表咱们都在里面进行),然后用比较规范的建表语句创建表table01。这里的建表语句我们只是先把涉及的点覆盖到,后面会逐项展开说明:

mysql> create database starrocks;

mysql> use starrocks;

mysql> CREATE TABLE table01 (

    user_id INT COMMENT "id of user",

    device_code INT COMMENT "code of device",

    device_price DECIMAL(10,2) COMMENT "",

    event_time DATETIME NOT NULL COMMENT "datetime of event",

    total DECIMAL(18,2) SUM DEFAULT "0" COMMENT "total amount of equipment",

    index index01 (user_id) USING BITMAP COMMENT "bitmap index"

)

AGGREGATE KEY(user_id, device_code,device_price,event_time)

PARTITION BY RANGE(event_time)

(

PARTITION p1 VALUES LESS THAN ('2021-01-31'),

PARTITION p2 VALUES LESS THAN ('2021-02-28'),

PARTITION p3 VALUES LESS THAN ('2021-03-31')

)

DISTRIBUTED BY HASH(user_id,device_code) BUCKETS 20

PROPERTIES (

"replication_num" = "1",

"bloom_filter_columns"="event_time"

);

在建表完成后,我们可以用show create table语句查看建表语句:

show create table table01;

也可以使用desc命令查看表结构:

desc table01;

或者:

SHOW FULL COLUMNS FROM table01;

table01是一个简单的聚合模型分区表,语句乍一看比较长,我们将其拆分为五部分来研究:

第一部分:

CREATE TABLE table01 (

    user_id INT COMMENT "id of user",

    device_code INT COMMENT "code of device",

    device_price DECIMAL(10,2) COMMENT "",

    event_time DATETIME NOT NULL COMMENT "datetime of event",

total DECIMAL(18,2) SUM DEFAULT "0" COMMENT " total amount of equipment",

…………

这里是列创建部分,与MySQL语法较为相似。我们创建了五列user_id、device_code、device_price、event_time和total。每列的语法为:

col_name col_type [agg_type] [NULL | NOT NULL] [DEFAULT "default_value"] COMMENT " xxxxxx"

这里的前四列我们可以称之为维度列,第五列total列为指标列,我们为其设置了聚合类型sum。所以在table01中,前四列相同的数据在导入StarRocks时,指标列total会根据聚合类型sum自动聚合。

第二部分:

…………

    index index01 (user_id) USING BITMAP COMMENT 'bitmap index'

)

…………

这部分是创建索引,我们为user_id列创建了名为index01的bitmap索引。当前这种写法仅支持BITMAP索引,创建语法为:

INDEX index_name (col_name1[, col_name2, ...]) [USING BITMAP] COMMENT 'xxxxxx'

bitmap索引我们也可以在建表完成后再创建,这里暂不展开。

第三部分:

…………

AGGREGATE KEY(user_id, device_code,device_price,event_time)

…………

这里是为聚合模型显式的定义排序键,在为聚合模型定义排序键时,需要把所有的维度列按照建表的顺序都写上。在StarRocks聚合模型建表时,只要给指标列定义指明聚合函数,就会自动启用聚合模型,所以这部分大多数情况下其实也可以省略不写。

排序键中的列需要与建表语句中列的顺序一致,我们可以从头选取几个列作为排序键。在省略这部分时,StarRocks也会自动选择表结构前面的几列作为排序列,所以通常我们需要把经常作为查询条件的列作为排序键写在建表语句靠前部分以加速查询。

第四部分:

…………

PARTITION BY RANGE(event_time)

(

PARTITION p1 VALUES LESS THAN ('2021-01-31'),

PARTITION p2 VALUES LESS THAN ('2021-02-28'),

PARTITION p3 VALUES LESS THAN ('2021-03-31')

)

DISTRIBUTED BY HASH(user_id,device_code) BUCKETS 20

…………

这里是为table01指定分区和分桶,我们按照event_time根据日期分为三个区,然后按照user_id和device_code将每个分区数据根据hash分散到20个桶中,最终会将数据切分为子表tablet分布在桶中。

分区的主要目的是裁剪数据,来最大限度地减少扫描数据量,从而提高查询性能。通常我们会使用日期进行分区。这里如果不进行分区,StarRocks会将整个表的数据视为在一个大分区内。

分桶是将分区后的数据打散为一个个tablet,使数据多副本分散在集群的多个节点上,充分发挥集群多机多核的查询优势。为了保证数据不倾斜,我们会根据业务选择一列或者多列进行分桶。如果这里不指定分桶数,比如只写为“DISTRIBUTED BY HASH(user_id,device_code)”,StarRocks会默认将数据分为10个桶。

第五部分:

…………

PROPERTIES (

"replication_num" = "1",

"bloom_filter_columns"="event_time"

);

这部分用来指定表的一些其他属性,比如副本数、存储介质、动态分区、bloom_filter索引等等。例如这里的bloom_filter_columns为BloomFilter索引,replication_num为副本数。我们将table01的数据副本指定为了1,而在不指定时,StarRocks默认为三副本数据(这里的副本数与ElasticSearch等的含义不同,StarRocks的1副本意思是仅有一份数据,三副本为共有三份数据)。提前说明一下,在默认情况下,这里的属性是针对全表的,但是,StarRocks也支持针对分区级别单独设置一些属性,这里咱们也暂不展开。

为方便展示聚合模型的特性,我们导入三条数据:

mysql> insert into table01 values(1001,27,9.99,'2021-03-11',9.99);

mysql> insert into table01 values(1001,27,9.99,'2021-03-11',10.99);

mysql> insert into table01 values(1002,28,15.49,'2021-03-12',15.49);

mysql> select * from table01;

+---------------+--------------------+--------------------+-------------------------------+---------------+

| user_id       | device_code    | device_price    | event_time                   |   total          |

+---------------+--------------------+--------------------+-------------------------------+---------------+

|    1001        |          27           |        9.99          | 2021-03-11 00:00:00    |  20.98         |

|    1002        |          28           |       15.49         | 2021-03-12 00:00:00    |  15.49         |

+---------------+--------------------+--------------------+-------------------------------+---------------+

查询发现表中只有两条数据,这是因为导入的前两条数据由于前四列(维度列)的值相同,在导入时自动聚合,对第五列(指标列)进行了sum求和运算。

以上就是StarRocks聚合模型的简单例子,后续,我们会针对StarRocks的建表进行展开介绍。
 

# 创建命名空间 apiVersion: v1 kind: Namespace metadata: name: starrocks --- # 配置MinIO访问密钥Secret apiVersion: v1 kind: Secret metadata: name: starrocks-s3-secret namespace: starrocks type: Opaque stringData: AWS_ACCESS_KEY_ID: "admin" # MinIO访问密钥 AWS_SECRET_ACCESS_KEY: "izhMinio@pasword" # MinIO密钥 AWS_ENDPOINT: "http://minio-svc.minio-ns.svc.cluster.local:9000" # MinIO服务地址 AWS_DEFAULT_REGION: "cn-north-1" --- # FE ConfigMap apiVersion: v1 kind: ConfigMap metadata: name: fe-config namespace: starrocks data: fe.conf: | brpc_port = 8060 enable_brpc_ssl = false enable_fqdn_mode = true cloud_native_meta_port = 6090 meta_dir = /opt/starrocks/fe/meta edit_log_port = 9010 http_port = 8030 query_port = 9030 JAVA_OPTS = -Xmx16g -Xms16g --- # StorageClass(确保集群已部署local-path-provisioner) apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: local-path-starrocks provisioner: rancher.io/local-path volumeBindingMode: WaitForFirstConsumer reclaimPolicy: Retain # 保留数据防止误删除 --- # FE Service apiVersion: v1 kind: Service metadata: name: fe-service namespace: starrocks spec: type: NodePort ports: - name: edit-log # 新增9010端口映射 port: 9010 targetPort: 9010 - name: query port: 9030 targetPort: 9030 nodePort: 31030 - name: http port: 8030 targetPort: 8030 nodePort: 31031 selector: app: fe --- # BE Service apiVersion: v1 kind: Service metadata: name: be-service namespace: starrocks spec: clusterIP: None ports: - name: be port: 9060 targetPort: 9060 - name: heartbeat port: 9050 targetPort: 9050 selector: app: be --- # BE ConfigMap apiVersion: v1 kind: ConfigMap metadata: name: be-config namespace: starrocks data: be.conf: | heartbeat_service_port = 9050 heartbeat_service_address = fe-service.starrocks.svc.cluster.local storage_root_path = /opt/starrocks/storage_data webserver_port = 8040 be_port = 9060 be_http_port = 8040 brpc_port = 8060 cloud_native_meta_port = 6090 # 存算分离核心配置(需与MinIO完全匹配) aws_s3_endpoint = minio-svc.minio-ns.svc.cluster.local:9000 aws_s3_path = s3://starrocks-data/ aws_s3_access_key = admin aws_s3_secret_key = izhMinio@pasword aws_s3_use_aws_sdk_default_behavior = false # 必须关闭AWS默认行为 aws_s3_enable_path_style_access = true # MinIO需要启用路径模式 # 存算分离配置 run_mode = shared_data cloud_native_storage_type = S3 aws_s3_path = "s3://starrocks-data/" # 生产环境JVM参数 JAVA_OPTS = -Xmx32g -Xms32g -XX:+UseG1GC JAVA_HOME = /opt/starrocks/jdk-17 --- # FE StatefulSet apiVersion: apps/v1 kind: StatefulSet metadata: name: fe namespace: starrocks spec: serviceName: fe-service replicas: 3 selector: matchLabels: app: fe template: metadata: labels: app: fe spec: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: ["fe"] topologyKey: "kubernetes.io/hostname" containers: - name: fe image: registry.cn-shanghai.aliyuncs.com/vsi-open/starrocks-fe:2025-05-22 command: - /bin/sh - -c - | # 添加日志输出便于调试 echo "Starting FE with ID ${FE_ID}"; if [ "${FE_ID}" = "fe-0" ]; then /opt/starrocks/fe/bin/start_fe.sh --host_type=FQDN else export JAVA_OPTS="-Xmx16g -Xms16g -Dcom.alibaba.rocketmq.client.sendSmartMsg=false" /opt/starrocks/fe/bin/start_fe.sh --helper=fe-0.fe-service.starrocks.svc.cluster.local:9010 --host_type=FQDN fi lifecycle: preStop: exec: command: ["/opt/starrocks/fe/bin/stop_fe.sh"] env: - name: FE_MASTER_SERVERS # 主节点专用配置 value: "fe-0.fe-service.starrocks.svc.cluster.local:9010" - name: FE_SERVERS value: "fe-0.fe-service.starrocks.svc.cluster.local:9010,fe-1.fe-service.starrocks.svc.cluster.local:9010,fe-2.fe-service.starrocks.svc.cluster.local:9010" - name: FE_ID valueFrom: fieldRef: fieldPath: metadata.name ports: - containerPort: 9010 # 内部通信端口 - containerPort: 9030 # MySQL协议端口 - containerPort: 8030 # HTTP端口 volumeMounts: - name: meta mountPath: /opt/starrocks/fe/meta - name: config mountPath: /opt/starrocks/fe/conf/fe.conf subPath: fe.conf readinessProbe: httpGet: path: /api/health port: 8030 initialDelaySeconds: 120 periodSeconds: 20 failureThreshold: 5 livenessProbe: httpGet: path: /api/health port: 8030 initialDelaySeconds: 200 periodSeconds: 30 failureThreshold: 3 volumes: - name: config configMap: name: fe-config volumeClaimTemplates: - metadata: name: meta spec: accessModes: [ "ReadWriteOnce" ] storageClassName: "local-path-starrocks" resources: requests: storage: 50Gi --- # BE StatefulSet apiVersion: apps/v1 kind: StatefulSet metadata: name: be namespace: starrocks spec: serviceName: be-service replicas: 4 selector: matchLabels: app: be template: metadata: labels: app: be spec: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: ["be"] topologyKey: "kubernetes.io/hostname" containers: - name: be image: registry.cn-shanghai.aliyuncs.com/vsi-open/starrocks-be:2025-05-22 command: ["/opt/starrocks/be/bin/start_be.sh"] lifecycle: preStop: exec: command: ["/opt/starrocks/be/bin/stop_be.sh"] envFrom: - secretRef: name: starrocks-s3-secret env: - name: AWS_REGION value: "cn-north-1" - name: AWS_S3_ENDPOINT value: "minio-svc.minio-ns.svc.cluster.local:9000" - name: AWS_S3_USE_AWS_SDK_DEFAULT_BEHAVIOR value: "false" ports: - containerPort: 9060 name: hb-port # 心跳端口 - containerPort: 8040 name: http-port # 管理端口 - containerPort: 9050 name: hb-svc-port # 心跳服务端口 volumeMounts: - name: config mountPath: /opt/starrocks/be/conf/be.conf subPath: be.conf - name: storage mountPath: /opt/starrocks/be/storage resources: requests: cpu: 8 memory: 8Gi limits: cpu: 16 memory: 16Gi livenessProbe: tcpSocket: port: 9060 initialDelaySeconds: 120 periodSeconds: 20 readinessProbe: tcpSocket: port: 9060 initialDelaySeconds: 60 periodSeconds: 15 volumes: - name: config configMap: name: be-config volumeClaimTemplates: - metadata: name: meta spec: accessModes: [ "ReadWriteOnce" ] storageClassName: "local-path-starrocks" resources: requests: storage: 50Gi - metadata: name: storage spec: accessModes: [ "ReadWriteOnce" ] storageClassName: "local-path-starrocks" resources: requests: storage: 100Gi # 根据数据量调整 ```不用考虑minio,与宁状态如下 ``` ➜ StarRocks git:(master) ✗ kubectl get pod -n starrocks -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES be-0 1/1 Running 0 152m 172.18.3.241 follower03 <none> <none> be-1 1/1 Running 0 151m 172.18.1.57 follower01 <none> <none> be-2 1/1 Running 0 150m 172.18.0.130 leader01 <none> <none> be-3 1/1 Running 0 149m 172.18.2.222 follower02 <none> <none> fe-0 1/1 Running 0 7m22s 172.18.3.62 follower03 <none> <none> fe-1 0/1 Running 1 (46s ago) 5m17s 172.18.1.93 follower01 <none> <none> ➜ StarRocks git:(master) ✗ kubectl describe pod fe-1 -n starrocks Name: fe-1 Namespace: starrocks Priority: 0 Service Account: default Node: follower01/192.168.11.102 Start Time: Tue, 27 May 2025 15:47:56 +0800 Labels: app=fe apps.kubernetes.io/pod-index=1 controller-revision-hash=fe-675df448fb statefulset.kubernetes.io/pod-name=fe-1 Annotations: <none> Status: Running IP: 172.18.1.93 IPs: IP: 172.18.1.93 Controlled By: StatefulSet/fe Containers: fe: Container ID: containerd://463884b0da7eb4156097e7692746062da4046cc63df8d6d0f4c3dc615d4246ab Image: registry.cn-shanghai.aliyuncs.com/vsi-open/starrocks-fe:2025-05-22 Image ID: registry.cn-shanghai.aliyuncs.com/vsi-open/starrocks-fe@sha256:f581e1038681fa2f5d65bbb082f1d47d49fcab8ca37afb02c0eec5685947952d Ports: 9010/TCP, 9030/TCP, 8030/TCP Host Ports: 0/TCP, 0/TCP, 0/TCP Command: /bin/sh -c echo "Starting FE with ID ${FE_ID}"; if [ "${FE_ID}" = "fe-0" ]; then /opt/starrocks/fe/bin/start_fe.sh else echo "--helper=fe-0.fe-service.starrocks.svc.cluster.local:9010"; /opt/starrocks/fe/bin/start_fe.sh --helper=fe-0.fe-service.starrocks.svc.cluster.local:9010 fi State: Running Started: Tue, 27 May 2025 15:52:27 +0800 Last State: Terminated Reason: Error Exit Code: 143 Started: Tue, 27 May 2025 15:47:57 +0800 Finished: Tue, 27 May 2025 15:52:27 +0800 Ready: False Restart Count: 1 Liveness: http-get http://:8030/api/health delay=200s timeout=1s period=30s #success=1 #failure=3 Readiness: http-get http://:8030/api/health delay=120s timeout=1s period=20s #success=1 #failure=5 Environment: FE_MASTER_SERVERS: fe-0.fe-service.starrocks.svc.cluster.local:9010 FE_SERVERS: fe-0.fe-service.starrocks.svc.cluster.local:9010,fe-1.fe-service.starrocks.svc.cluster.local:9010,fe-2.fe-service.starrocks.svc.cluster.local:9010 FE_ID: fe-1 (v1:metadata.name) Mounts: /opt/starrocks/fe/conf/fe.conf from config (rw,path="fe.conf") /opt/starrocks/fe/meta from meta (rw) /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-65kpf (ro) Conditions: Type Status PodReadyToStartContainers True Initialized True Ready False ContainersReady False PodScheduled True Volumes: meta: Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace) ClaimName: meta-fe-1 ReadOnly: false config: Type: ConfigMap (a volume populated by a ConfigMap) Name: fe-config Optional: false kube-api-access-65kpf: Type: Projected (a volume that contains injected data from multiple sources) TokenExpirationSeconds: 3607 ConfigMapName: kube-root-ca.crt ConfigMapOptional: <nil> DownwardAPI: true QoS Class: BestEffort Node-Selectors: <none> Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s node.kubernetes.io/unreachable:NoExecute op=Exists for 300s Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 5m32s default-scheduler Successfully assigned starrocks/fe-1 to follower01 Normal Pulled 62s (x2 over 5m32s) kubelet Container image "registry.cn-shanghai.aliyuncs.com/vsi-open/starrocks-fe:2025-05-22" already present on machine Normal Created 62s (x2 over 5m32s) kubelet Created container: fe Normal Started 62s (x2 over 5m32s) kubelet Started container fe Warning Unhealthy 62s (x9 over 3m23s) kubelet Readiness probe failed: Get "http://172.18.1.93:8030/api/health": dial tcp 172.18.1.93:8030: connect: connection refused Warning Unhealthy 62s (x3 over 2m2s) kubelet Liveness probe failed: Get "http://172.18.1.93:8030/api/health": dial tcp 172.18.1.93:8030: connect: connection refused Normal Killing 62s kubelet Container fe failed liveness probe, will be restarted Warning FailedPreStopHook 62s kubelet PreStopHook failed kubectl exec fe-0 -n starrocks -- curl http://localhost:8030/api/health % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 60 100 60 0 0 46224 0 --:--:-- --:--:-- --:--:-- 60000{"online_backend_num":0,"total_backend_num":4,"status":"OK"} ➜ StarRocks git:(master) ✗ ``` 我手动登陆fe-0 将4个be添加“ALTER SYSTEM ADD BACKEND”,但其alive都是false 特别说明 我的镜像是基于fe-ubuntu:latest与be-ubuntu:latest,不支持/opt/starrocks/be/bin/start_backend.sh -be_port=9060 webserver_port=8040 请修正
05-28
<think>嗯,用户的问题是在Kubernetes里部署StarRocks集群时,BE节点的alive状态显示为false,可能和镜像不支持某些启动参数有关。他们用的是fe-ubuntu:latest和be-ubuntu:latest镜像,需要调整StatefulSet配置来兼容start_be.sh脚本的限制。首先,我得回忆一下StarRocks的组件结构,BE节点负责数据存储和查询执行,启动脚本可能对环境变量或参数有特定要求。用户提到可能与镜像不支持的启动参数有关,所以需要检查BE的启动脚本是否有特别的要求。比如,是否需要在容器启动时传递某些参数,或者环境变量是否正确设置。参考用户提供的引用[1],里面有一个docker-compose.yaml的例子,其中BE服务的command是直接执行start_be.sh,并且挂载了配置文件、存储目录和日志。这可能说明在Kubernetes中也需要类似的配置,比如正确挂载配置文件,或者设置网络模式。另外,引用[3]提到将目录映射到Docker容器中,可能涉及到存储卷的挂载问题。如果BE节点需要持久化存储,在StatefulSet中是否正确配置了volumeClaimTemplates?还有健康检查的设置,引用[1]中的healthcheck部分,可能Kubernetes的存活探针需要调整,比如使用HTTP GET请求检查8040端口的健康接口,如果健康检查配置不正确,可能导致BE节点被认为不健康。接下来,用户需要调整StatefulSet配置。可能的步骤包括:确保启动命令正确,比如在容器命令中直接调用start_be.sh;检查环境变量,如BE的配置文件是否正确挂载;网络模式是否使用hostNetwork,因为StarRocks的BE可能需要特定的端口通信;存储卷是否正确挂载,特别是be.conf和storage目录;调整存活探针,使用正确的端口和路径;以及可能的初始化容器等待FE节点就绪。还需要考虑的是,Kubernetes中的服务发现是否配置正确,BE节点能否正确连接到FE节点。如果BE启动时依赖FE已经启动,可能需要初始化容器来等待FE就绪,如引用[2]中的etcd配置,可能需要类似的服务发现设置。最后,用户可能需要查看BE的日志来进一步诊断问题,所以需要确保日志目录挂载正确,方便排查错误。综合这些因素,调整StatefulSet的配置,确保所有参数和挂载点正确,健康检查配置合适,网络设置正确,应该能解决BE节点alive状态为false的问题。</think>### 分步解决方案 #### 1. 确认BE启动命令限制 StarRocks BE节点启动脚本`/opt/starrocks/be/bin/start_be.sh`默认要求**直接运行脚本**而非通过参数传递配置,需要调整Kubernetes StatefulSet的启动命令: ```yaml command: ["/bin/bash", "-c", "/opt/starrocks/be/bin/start_be.sh"] ``` #### 2. 配置关键环境变量 BE节点依赖以下核心参数,需通过env字段注入: ```yaml env: - name: PRIORITY_NETWORKS value: "10.0.0.0/24" # 指定BE节点通信网段 - name: BE_PORT value: "9060" # BE Thrift服务端口 - name: WEBSERVER_PORT value: "8040" # 健康检查端口 ``` #### 3. 调整网络模式 BE节点需要直接绑定主机网络端口,在StatefulSet中配置: ```yaml spec: template: spec: hostNetwork: true # 启用主机网络模式 dnsPolicy: ClusterFirstWithHostNet ``` #### 4. 持久化存储配置 BE需要稳定存储数据目录,使用PVC声明存储卷: ```yaml volumeMounts: - name: be-storage mountPath: /opt/starrocks/be/storage volumes: - name: be-storage persistentVolumeClaim: claimName: be-pvc ``` #### 5. 健康检查优化 根据BE的HTTP健康检查接口调整存活探针: ```yaml livenessProbe: httpGet: path: /api/health port: 8040 initialDelaySeconds: 60 periodSeconds: 30 ``` #### 6. 初始化容器配置 添加等待FE就绪的初始化容器: ```yaml initContainers: - name: wait-fe image: busybox:1.28 command: ['sh', '-c', 'until nc -z fe-service 9030; do echo waiting for fe; sleep 10; done'] ``` #### 7. 完整配置示例 ```yaml apiVersion: apps/v1 kind: StatefulSet metadata: name: starrocks-be spec: serviceName: "be" replicas: 3 template: metadata: labels: app: be spec: hostNetwork: true initContainers: - name: wait-fe image: busybox:1.28 command: ['sh', '-c', 'until nc -z fe-service 9030; do echo waiting for fe; sleep 10; done'] containers: - name: be image: starrocks/be-ubuntu:latest command: ["/bin/bash", "-c", "/opt/starrocks/be/bin/start_be.sh"] env: - name: PRIORITY_NETWORKS value: "10.0.0.0/24" - name: BE_PORT value: "9060" ports: - containerPort: 9060 - containerPort: 8040 volumeMounts: - name: be-storage mountPath: /opt/starrocks/be/storage livenessProbe: httpGet: path: /api/health port: 8040 initialDelaySeconds: 60 periodSeconds: 30 volumeClaimTemplates: - metadata: name: be-storage spec: accessModes: [ "ReadWriteOnce" ] storageClassName: "ssd" resources: requests: storage: 100Gi ``` ### 关键验证步骤 1. 检查BE日志定位错误原因: ```bash kubectl logs starrocks-be-0 -c be | grep "ERROR" ``` 2. 验证节点注册状态: ```bash mysql -h fe-service -P 9030 -uroot -e "SHOW PROC '/backends'" ``` 正常应显示`Alive: true`和`SystemDecommissioned: false`[^1]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值