
StarRocks可以通过滚动升级的方式,平滑进行升级。升级顺序是先升级BE,然后再升级FE,最后升级Broker。FE升级切换会有短暂业务中断,可采用硬件负载均衡如F5、软件负载均衡如nginx、DNS轮询、jdbc连接串轮询、LVS、keeplive等多种方式实现平滑升级。

0. ENV
0.1 升级版本
1.14.5到1.14.6属小版本升级,1.14.x到1.15.x属大版本升级。
本次以1.14.6升级到1.15.1大版本升级进行展示,原有版本1.14.6已经安装,需准备介质StarRocks-SE-1.51.1.tar.gz。
0.2 升级说明
StarRocks可以通过滚动升级的方式,平滑进行升级。升级顺序是先升级BE,然后再升级FE,最后升级Broker。
StarRocks保证BE后向兼容FE,升级的过程可以分为:测试升级的正确性,滚动升级,观察服务。
如果是大版本升级,则需要升级其他文件(包括但不限于bin/ lib/等等)如果您不清楚是否需要替换其他文件,建议全部替换即可,但需要保留配置文件、数据文件。
通常小版本升级,BE只需升级starrocks_be,而FE只需升级starrocks-fe.jar,本次为小版本升级,Broker不需要升级。
1. 升级前确认
1) 升级前版本查看
fe版本查看:
[root@sr01 ~]# show_fe_version.shCommit hash: d20a24bBuild type: UNKNOWNBuild time: 2021-04-13 14:36:48Build user: jenkins@sr-sandbox07Java compile version: java full version "1.8.0_202-b08"
be版本查看:
[root@sr01 ~]# show_be_version.sh1.14.6 UNKNOWN (build d20a24b)Built on 2021-04-13 14:23:15 by jenkins@sr-sandbox07
2) 升级前进程确认
mysql中查看各服务状态:
[root@sr01 ~]# mysql -h 127.0.0.1 -P9030 -urootmysql> show PROC '/frontends';mysql> show proc '/backends'\Gmysql> show proc '/brokers';
JAVA进程查看:
[root@sr01 ~]# jps25670 starrocksFe6574 Jps
[root@sr02 ~]# jps14967 Jps20399 starrocksFe
[root@sr03 ~]# jps27572 Jps12007 BrokerBootstrap
3) 解压1.15.1升级包
[root@sr01 ~]# tar -zxvf soft/StarRocks-SE-1.15.1.tar.gz -C root/
2. BE升级
采用滚动升级,逐个升级BE。BE不区分先后。
以节点sr01为例
1) 停止be
[root@sr01 ~]# starrocks/be/bin/stop_be.sh --daemon
2) 确保进程已停止
[root@sr01 ~]# ps -ef |grep starrocks/be | grep -v grep
3) 备份BE的3个目录
备份bin、lib、www,配置文件conf目录和数据目录storage不变
[root@sr01 ~]# cd starrocks/be/[root@sr01 ~]# mv bin bin.1.14.6[root@sr01 ~]# mv lib lib.1.14.6[root@sr01 ~]# mv www www.1.14.6
4) 升级BE
查看当前路径
[root@sr01 be]# pwd/starrocks/be
升级文件替换
[root@sr01 be]# cp -af root/StarRocks-SE-1.15.1/be/bin .[root@sr01 be]# cp -af root/StarRocks-SE-1.15.1/be/lib .[root@sr01 be]# cp -af root/StarRocks-SE-1.15.1/be/www .
OR
[root@sr01 be]# mv root/StarRocks-SE-1.15.1/be/bin .[root@sr01 be]# mv root/StarRocks-SE-1.15.1/be/lib .[root@sr01 be]# mv root/StarRocks-SE-1.15.1/be/www .
5) 确认权限为1007:1007
[root@sr01 be]# pwd/starrocks/be[root@sr01 be]# ls -ld bin lib wwwdrwxr-xr-x 2 1007 1007 86 May 20 22:05 bindrwxr-xr-x 4 1007 1007 66 May 20 22:05 libdrwxr-xr-x 3 1007 1007 234 May 20 22:05 www
否则,进行更改
[root@sr01 ~]# chown 1007:1007 starrocks/be/lib/starrocks_be
6) 启动be
[root@sr01 ~]# starrocks/be/bin/start_be.sh --daemon
7) 查看进程
[root@sr01 be]# ps -ef | grep starrocks/be | grep -v greproot 4398 1 2 22:27 pts/1 00:00:00 starrocks/be/lib/starrocks_be
8) 确认版本-当前已升级成功
[root@sr01 be]# starrocks/be/bin/show_be_version.sh1.15.1 RELEASE (build 6fb71ad)Built on 2021-05-20 21:54:06 by jenkins@ci01
9) 同样逐个升级sr02、sr03节点的BE。
10) 运行正常情况下,删除备份内容
[root@sr01 be]# rm -rf bin.1.14.6[root@sr01 be]# rm -rf lib.1.14.6[root@sr01 be]# rm -rf www.1.14.6
3. FE升级
采用滚动升级,逐个升级FE。FE先升级FOLLOWER,最后升级Master。
FE升级的目录webroot、spark-dpp、lib、bin,配置目录conf一般不做调整,sr-meta为元数据目录。
以节点sr02为例,进行升级。
1) 停止FE
[root@sr02 ~]# starrocks/fe/bin/stop_fe.sh --daemonstop java, and remove pid file.
2) 确保进程已停止
[root@sr02 ~]# jps7068 Jps
3) 备份FE
进入升级路径:
[root@sr02 ~]# cd starrocks/fe[root@sr02 fe]# pwd/starrocks/fe
升级文件替换:
[root@sr02 fe]# mv webroot webroot.1.14.6[root@sr02 fe]# mv spark-dpp spark-dpp.1.14.6[root@sr02 fe]# mv lib lib.1.14.6[root@sr02 fe]# mv bin bin.1.14.6
4) 升级FE
查看当前路径
[root@sr02 fe]# pwd/starrocks/fe
复制升级文件
[root@sr02 fe]# cp -af root/StarRocks-SE-1.15.1/fe/webroot .[root@sr02 fe]# cp -af root/StarRocks-SE-1.15.1/fe/spark-dpp .[root@sr02 fe]# cp -af root/StarRocks-SE-1.15.1/fe/lib .[root@sr02 fe]# cp -af root/StarRocks-SE-1.15.1/fe/bin .
OR
[root@sr02 fe]# mv root/StarRocks-SE-1.15.1/fe/webroot .[root@sr02 fe]# mv root/StarRocks-SE-1.15.1/fe/spark-dpp .[root@sr02 fe]# mv root/StarRocks-SE-1.15.1/fe/lib .[root@sr02 fe]# mv root/StarRocks-SE-1.15.1/fe/bin .
5) 查看属主和属组1007:1007
[root@sr02 fe]# ls -ld webroot[root@sr02 fe]# ls -ld spark-dpp[root@sr02 fe]# ls -ld lib[root@sr02 fe]# ls -ld bin
6) 如果属主和属组异常则进行更改
[root@sr02 ~]# chown 1007:1007 /starrocks/fe/lib
7) 启动fe
启动fe
[root@sr02 ~]# /starrocks/fe/bin/start_fe.sh --daemon
查看进程
[root@sr02 fe]# jps5345 starrocksFe
8) 查看be升级后版本
通过发布版本时间查看,当前已升级成功。
[root@sr02 fe]# /starrocks/fe/bin/show_fe_version.shCommit hash: 6fb71adBuild type: RELEASEBuild time: 2021-05-20 22:02:49Build user: jenkins@ci01Java compile version: java full version "1.8.0_202-b08"
9) 查看角色进程
mysql> show proc '/frontends';
10) 同样,升级其它FE节点,如sr01。
11) 运行正常情况下,删除备份内容
[root@sr02 fe]# rm -rf webroot.1.14.6[root@sr02 fe]# rm -rf spark-dpp.1.14.6[root@sr02 fe]# rm -rf lib.1.14.6[root@sr02 fe]# rm -rf bin.1.14.6
4. broker升级
broker作为辅助功能,在未使用该组件时,停止Broker服务,替换响应文件。
当前节点sr03为例,进行broker升级。
1) 停止broker
[root@sr03 ~]# /starrocks/apache_hdfs_broker/bin/stop_broker.shstop java, and remove pid file.
2) 确保进程已停止
[root@sr03 ~]# jps4356 Jps
3) 备份FE
进入目录
[root@sr03 ~]# cd /starrocks/apache_hdfs_broker[root@sr03 apache_hdfs_broker]# pwd/starrocks/apache_hdfs_broker
备份
[root@sr03 apache_hdfs_broker]# mv lib lib.1.14.6[root@sr03 apache_hdfs_broker]# mv bin bin.1.14.6
4) 升级broker
[root@sr03 apache_hdfs_broker]# pwd/starrocks/apache_hdfs_broker
升级:
[root@sr03 apache_hdfs_broker]# cp -af /root/StarRocks-SE-1.15.1/apache_hdfs_broker/lib .[root@sr03 apache_hdfs_broker]# cp -af /root/StarRocks-SE-1.15.1/apache_hdfs_broker/bin .
OR
[root@sr03 apache_hdfs_broker]# mv /root/StarRocks-SE-1.15.1/apache_hdfs_broker/lib .[root@sr03 apache_hdfs_broker]# mv /root/StarRocks-SE-1.15.1/apache_hdfs_broker/bin .
5) 确认属主和属组(1007:1007)
[root@sr03 apache_hdfs_broker]# ls -ld lib[root@sr03 apache_hdfs_broker]# ls -ld bin
如果属主和属组异常则进行更改,如
[root@sr03 apache_hdfs_broker]# chown 1007:1007 /starrocks/apache_hdfs_broker/lib
6) 启动broker
[root@sr03 apache_hdfs_broker]# /starrocks/apache_hdfs_broker/bin/start_broker.sh --daemon
7) 查看进程
[root@sr03 apache_hdfs_broker]# jps4545 Jps4527 BrokerBootstrap
8) 查看服务
mysql> show proc '/brokers';
9) 运行正常情况下,删除备份内容
[root@sr03 apache_hdfs_broker]# rm -rf lib.1.14.6[root@sr03 apache_hdfs_broker]# rm -rf bin.1.14.6
注:broker无查看版本命令。
5. 升级完成后验证
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"}
6. 登录测试
1.15.1本机登录时,需要提供密码,1.15.1之前版本,本机登录不需要密码。
[root@sr01 ~]# mysql -h192.168.80.71 -P9030 -uroot -p******mysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 15Server version: 5.1.0 StarRocks version 1.15.1Copyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> exit
7. 小结
本文从StarRocks1.14.6升级到StarRocks1.15.1,采用滚动方式升级BE、FE、Broker,完成StarRocks大版本升级,修复bug,提升功能,解决部分OOM问题。

作者:王坤,微信公众号:rundba,欢迎转载,转载请注明出处。
如需公众号转发,请联系wx:landnow。




