暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

0045.S StarRocks大版本升级

rundba 2022-05-23
1118

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.sh
Commit hash: d20a24b
Build type: UNKNOWN
Build time: 2021-04-13 14:36:48
Build user: jenkins@sr-sandbox07
Java compile version: java full version "1.8.0_202-b08"


be版本查看:

[root@sr01 ~]# show_be_version.sh
1.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 -uroot
mysql> show PROC '/frontends';
mysql> show proc '/backends'\G
mysql> show proc '/brokers';


JAVA进程查看:

[root@sr01 ~]# jps
25670 starrocksFe
6574 Jps
[root@sr02 ~]# jps
14967 Jps
20399 starrocksFe
[root@sr03 ~]# jps
27572 Jps
12007 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 www
drwxr-xr-x 2 1007 1007  86 May 20 22:05 bin
drwxr-xr-x 4 1007 1007  66 May 20 22:05 lib
drwxr-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 grep
root       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.sh 
1.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 --daemon
stop java, and remove pid file.


2) 确保进程已停止

[root@sr02 ~]# jps
7068 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]# jps
5345 starrocksFe


8) 查看be升级后版本

通过发布版本时间查看,当前已升级成功。

[root@sr02 fe]# /starrocks/fe/bin/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"


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.sh
stop java, and remove pid file.


2) 确保进程已停止

[root@sr03 ~]# jps
4356 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]# jps
4545 Jps
4527 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 15
Server version: 5.1.0 StarRocks version 1.15.1


Copyright (c) 2000, 2021, Oracle and/or its affiliates.


Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.


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。




文章转载自rundba,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论