主要参考来源
http://docs.mirrorship.cn/zh/docs/3.0/deployment/upgrade/
下载地址
https://www.starrocks.io/download/community
目的
将Starrocks集群从3.0版本升级为最新的3.1
在集群所有的服务器上下载3.1最新的压缩包
# 将权限设置为管理员,选做
sudo -i
# 正式下载
wget https://releases.starrocks.io/starrocks/StarRocks-3.1.13.tar.gz
mkdir -p starrocks-3.1
tar -xzvf StarRocks-3.1.13.tar.gz -C ./starrocks-3.1
并解压到指定目录
之后直接进行滚动升级,首先升级BE节点,
cd /etc/starrocks/be
# 停止be节点
./bin/stop_be.sh
# 备份当前的版本相关文件夹
mv lib lib_3_0.bak
mv bin bin_3_0.bak
# 将新版本的相关文件夹复制到be文件夹之中。
cp -r /home/ec2-user/starrocks-3.1/StarRocks-3.1.13/be/lib .
cp -r /home/ec2-user/starrocks-3.1/StarRocks-3.1.13/be/bin .
# 重启be节点
sh bin/start_be.sh –daemon
# 查看本地启动状态
ps aux | grep starrocks_be
并且利用相关sql查看BE的版本的alive状态
show backends
BE升级完成之后,开始升级FE节点。
仍然采取着先停机,备份,拷贝新的文件夹,最后进行重启
需要注意的是,需要先滚动升级Follow节点之后,最后在升级Leader节点
# 1.停机
cd /etc/starrocks/fe
./bin/stop_fe.sh
# 2.备份
mv lib lib_3_0.bak
mv bin bin_3_0.bak
mv spark-dpp spark-dpp_3_0.bak
# 3.拷贝新文件夹
cp -r /home/ec2-user/starrocks-3.1/StarRocks-3.1.13/fe/lib .
cp -r /home/ec2-user/starrocks-3.1/StarRocks-3.1.13/fe/bin .
cp -r /home/ec2-user/starrocks-3.1/StarRocks-3.1.13/fe/spark-dpp .
# 4.重启
sh bin/start_fe.sh –daemon
仍然是本机验证完成启动状态之后,利用sql进行验证
ps aux | grep StarRocksFE
show frontends
在本次升级中,为了修复query过程中OOM的问题,还开启了Starrocks提供的算子中间结果落盘机制。
在各个BE节点上,创建落盘文件夹,最好设置在不同磁盘之上
mkdir -p /app/middle/dir
进入 BE的conf目录并进行配置
cd ./conf
vim be.conf
并在最后增加一行
spill_local_storage_dir = /app/middle/dir
之后在利用sql进行相关的配置开启。
SET GLOBAL enable_spill = true;
其默认的逻辑为当查询内存满的时候,会以文件的方式落盘
还可以设置SET spill_mode = { “auto” | “force” };
当设置为force的时候,会在查询过程中,尝试将一切中间状态落盘。