当前位置: 首页 > news >正文

StarRocks 开发环境搭建踩坑指北之存算分离篇

前段时间碰到一个 StarRocks 物化视图的 bug: https://github.com/StarRocks/starrocks/issues/55301

但是这个问题只能在存算分离的场景下才能复现,为了找到问题原因我便尝试在本地搭建一个可以 Debug 的存算分离版本。

之前也分享过在
本地 Debug StarRocks,不过那是存算一体的版本,而存算分离稍微要复杂一些。

这里提到的本地 Debug 主要是指可以调试 FE,而 CN/BE 则是运行在容器环境,避免本地打包和构建运行环境。


当前 StarRocks 以下的存算分离部署方式,在本地推荐直接使用 MinIO 部署。

e5c9d43d98a3f4616a8104566d1bfd0f.png

启动 MinIO

首先第一步启动 MinIO:

docker run -d --rm --name minio \
  -e MINIO_ROOT_USER=miniouser \
  -e MINIO_ROOT_PASSWORD=miniopassword \
  -p 9001:9001 \
  -p 9000:9000 \
  --entrypoint sh \
  minio/minio:latest \
  -c 'mkdir -p /minio_data/starrocks && minio server /minio_data --console-address ":9001"'

进入 MinIO 容器设置 access token:

docker exec -it minio sh
mc alias set myminio http://10.0.9.20:9000 miniouser miniopassword; mc admin user svcacct add --access-key AAAAAAAAAAAAAAAAAAAA --secret-key BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB myminio miniouser

启动 cn:

docker run -p 9060:9060 -p 8040:8040 -p 9050:9050 -p 8060:8060 -p 9070:9070 -itd --rm --name cn -e "TZ=Asia/Shanghai" starrocks/cn-ubuntu:3.4-latest

修改 cn.conf :

cd cn/config/
echo "priority_networks = 10.0.9.20/24" >> cn.properties

使用脚本手动启动 cn:

bin/start_cn.sh --daemon

使用以下配置在本地 IDEA 中启动 FE:

LOG_DIR = ${STARROCKS_HOME}/log  
  
DATE = "$(date +%Y%m%d-%H%M%S)"  

sys_log_level = INFO  

http_port = 8030  
rpc_port = 9020  
query_port = 9030  
edit_log_port = 9010  
mysql_service_nio_enabled = true  

run_mode = shared_data  
cloud_native_storage_type = S3  
aws_s3_endpoint = 10.0.9.20:9000  
# set the path in MinIO  
aws_s3_path = starrocks  
# credentials for MinIO object read/write  
# 这里的 key 为刚才设置的 access token
aws_s3_access_key = AAAAAAAAAAAAAAAAAAAA  
aws_s3_secret_key = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB  
aws_s3_use_instance_profile = false  
aws_s3_use_aws_sdk_default_behavior = false  
# Set this to false if you do not want default  
# storage created in the object storage using  
# the details provided above  
enable_load_volume_from_conf = true  

# 本机 IP,需要与 cn 中的配置对齐
priority_networks = 10.0.9.20/24

启动 FE 之前最好先删除 meta/. 下的所有元数据文件然后再启动。

添加 CN 节点

FE 启动成功之后连接上 FE,然后手动添加 CN 节点。

ALTER SYSTEM ADD COMPUTE NODE "127.0.0.1:9050";
show compute nodes;
2684887f3c72d895dbe0c5c0370270fa.png

然后就可以创建存算分离的表了。

CREATE TABLEIFNOTEXISTS par_tbl1
(
    datekey DATETIME,
    k1      INT,
    item_id STRING,
    v2      INT
)PRIMARY KEY (`datekey`,`k1`)
PARTITIONBY date_trunc('day', `datekey`)
 PROPERTIES (
"compression" = "LZ4",
"datacache.enable" = "true",
"enable_async_write_back" = "false",
"enable_persistent_index" = "true",
"persistent_index_type" = "LOCAL",
"replication_num" = "1",
"storage_volume" = "builtin_storage_volume"
);

最终其实是参考官方提供的 docker-compose 的编排文件进行部署的: https://raw.githubusercontent.com/StarRocks/demo/master/documentation-samples/quickstart/docker-compose.yml

如果只是想在本地搭建一个存算分离的版本,可以直接使用这个 docker compose.

其中有两个坑需要注意:

创建表超时

建表出现超时,提示需要配置时间:

admin set frontend config("tablet_create_timeout_second"="50")

配置也不能解决问题,依然会超时,可以看看本地是否有开启代理,尝试关闭代理试试看。

unknown compression type(0) backend [id=10002]

不支持的压缩类型:这个问题我在使用 main 分支的 FE 与最新的 starrocks/cn-ubuntu:3.4-latest 的镜像会触发,当我把 FE 降低到具体到 tag 分支,比如 3.3.9 的时候就可以了。

具体原因就没有细究了,如果要本地 debug 使用最新的 tag 也能满足调试的需求。

参考链接:

  • https://github.com/StarRocks/starrocks/issues/55301

  • https://docs.starrocks.io/zh/docs/deployment/shared_data/minio/

相关文章:

  • 自然语言处理NLP深探
  • 执行git操作时报错:`remote: [session-b8xxxda3] Access denied ...`解决方案
  • Windows 图形显示驱动开发-WDDM 3.2-自动显示切换(九)
  • 【Pandas】pandas Series dropna
  • [免费]Springboot+Vue在线文档管理系统【论文+源码+SQL脚本】
  • pta天梯L1-001 Hello World
  • 类和对象——const修饰的类的对象和函数
  • html css js网页制作成品——HTML+CSS甜品店网页设计(5页)附源码
  • 量子计算如何优化交通流量:未来智能出行的钥匙
  • AI 赋能教育:智能家教与个性化学习助手的革命性设计与实践
  • 大模型最新面试题系列:训练篇之预训练
  • CF 106A.Card Game(Java实现)
  • 待完成-swig将c语言程序转为python可用示例
  • 基于Python实现的【机器学习】小项目教程案例
  • 【算法 位运算】801. 二进制中1的个数
  • AMD RX 9070 系列显卡:技术革新与市场布局的深度探索
  • 【大模型】量化、剪枝、蒸馏
  • xenomai4的dovetail学习(3)——自旋锁和远程调用
  • Oracle 查询表空间使用情况及收缩数据文件
  • 关于“你对SpringCloud的理解”
  • 哈马斯与以色列在多哈举行新一轮加沙停火谈判
  • 中国情怀:时代记录与家国镜相|澎湃·镜相第三届非虚构写作大赛暨七猫第六届百万奖金现实题材征文大赛征稿启事
  • 哈马斯官员:若实现永久停火,可交出加沙地带控制权
  • 《大风杀》导演张琪:为了不算计观众,拍了部不讨好的警匪片
  • 【社论】打破“隐形高墙”,让老年人更好融入社会
  • 国防部:中方愿与俄方不断增强两军关系良好发展势头