StarRocks可以通过滚动升级的方式,平滑进行升级。升级顺序是先升级BE,然后再升级FE,最后升级Broker。FE升级切换会有短暂业务中断,可采用硬件负载均衡如F5、软件负载均衡如nginx、DNS轮询、jdbc连接串轮询、LVS、keeplive等多种方式实现平滑升级。
0.1 升级版本
1.15.1到1.15.2属小版本升级,1.14.x到1.15.x属大版本升级
0.2 升级说明
StarRocks可以通过滚动升级的方式,平滑进行升级。升级顺序是先升级BE,然后再升级FE。StarRocks保证BE后向兼容FE。升级的过程可以分为:测试升级的正确性,滚动升级,观察服务。
如果是大版本升级,则需要升级其他文件(包括但不限于bin/ lib/等等)如果您不清楚是否需要替换其他文件,建议全部替换即可,但需要保留配置文件、数据文件。
通常小版本升级,BE只需升级starrocks_be,而FE只需升级starrocks-fe.jar,本次为小版本升级,Broker不需要升级。
解压需要升级的文件starrocks_be和starrocks-fe.jar
[root@sr1 ~]# tar zxvf soft/StarRocks-SE-1.15.2.tar.gz StarRocks-SE-1.15.2/be/lib/starrocks_be
[root@sr1 ~]# tar zxvf soft/StarRocks-SE-1.15.2.tar.gz StarRocks-SE-1.15.2/fe/lib/starrocks-fe.jar
查看fe版本:
[root@sr01 ~]# show_fe_version.sh
Commit hash: 6fb71ad
Build type: RELEASE
Build time: 2021-05-20 22:02:49
Build user: jenkins@ci01
Java compile version: java full version "1.8.0_202-b08"
查看be版本:
[root@sr01 ~]# show_be_version.sh
1.15.1 RELEASE (build 6fb71ad)
Built on 2021-05-20 21:54:06 by jenkins@ci01
采用滚动升级,逐个升级BE。BE不区分先后,以节点sr01为例。
1) 停止be
[root@sr01 ~]# starrocks/be/bin/stop_be.sh --daemon
2) 确保进程已停止
[root@sr01 ~]# ps -ef |grep be
root 4202 1969 0 23:54 pts/0 00:00:00 grep --color=auto be
3) 备份BE
[root@sr01 ~]# mv starrocks/be/lib/starrocks_be starrocks/be/lib/starrocks_be.1.15.1
4) 升级BE
[root@sr01 ~]# cp -af StarRocks-SE-1.15.2/be/lib/starrocks_be starrocks/be/lib/
5) 确认权限(1007:1007)
[root@sr01 ~]# ls -lrt starrocks/be/lib/starrocks_be*
-rwxr-xr-x. 1 1007 1007 1240089360 Mar 30 23:54 starrocks/be/lib/starrocks_be.1.15.1
-rwxr-xr-x 1 1007 1007 1240128152 Apr 27 23:55 starrocks/be/lib/starrocks_be
6) 启动be
[root@sr01 ~]# starrocks/be/bin/start_be.sh --daemon
7) 确认版本-当前已升级成功
[root@sr01 ~]# starrocks/be/bin/show_be_version.sh
1.15.2 RELEASE (build 673a01e)
Built on 2021-06-01 15:43:51 by jenkins@ci01
8) 同样逐个升级sr02、sr03节点的BE
9)运行正常后,清理备份
[root@sr01 ~]# rm -f starrocks/be/lib/starrocks_be.1.15.1
采用滚动升级,逐个升级FE。FE先升级FOLLOWER,最后升级Master,以节点sr02为例。
1) 停止FE
[root@sr02 ~]# /starrocks/fe/bin/stop_fe.sh --daemon
stop java, and remove pid file.
2) 确保进程已停止
[root@sr02 ~]# jps
7068 Jps
3) 备份FE
[root@sr02 ~]# mv /starrocks/fe/lib/starrocks-fe.jar /starrocks/fe/lib/starrocks-fe.jar.1.15.1
4) 升级BE
[root@sr02 ~]# cp -af StarRocks-SE-1.15.2/fe/lib/starrocks-fe.jar /starrocks/fe/lib/
5)确认属主和属组
[root@sr02 ~]# ll /starrocks/fe/lib/starrocks-fe.jar*
-rw-rw-r-- 1 1007 1007 9738668 Apr 28 00:02 /starrocks/fe/lib/starrocks-fe.jar
-rw-rw-r--. 1 1007 1007 9738682 Mar 30 23:54 /starrocks/fe/lib/starrocks-fe.jar.1.15.1
6) 启动fe
[root@sr02 ~]# /starrocks/fe/bin/start_fe.sh --daemon
7) 升级后版本-当前已升级成功
[root@sr02 ~]# /starrocks/fe/bin/show_fe_version.sh
Commit hash: 673a01e
Build type: RELEASE
Build time: 2021-06-01 15:50:48
Build user: jenkins@ci01
Java compile version: java full version "1.8.0_202-b08"
8) 查看FE进程状态
mysql> show proc '/frontends';
9) 同样,升级其它FE节点,如sr01
be http port默认为8040
http://192.168.80.31:8040/api/health
{"status": "OK","msg": "To Be Added"}
fe http port默认为8030
http://192.168.80.31:8030/api/bootstrap
输入root,密码为空
{"online_backend_num":1,"total_backend_num":3,"status":"OK"}
通过小版本升级展示,以StarRocks从1.15.1升级到1.15.2为例,修复bug,提升稳定性。
往期参考:0045.D StarRocks大版本升级