最近发布了 2.3.1,准备升级一下现在测试环境的 2.3.0,整理个文档,加深一下印象
升级版本目标: 2.3.0 --> 2.3.1
现有集群
当前集群,三台服务器,每台机都有 fe/be/broker
版本:2.3.0
ip | fe | be | broker |
---|---|---|---|
228 | √ | √ | √ |
229 | √ | √ | √ |
230 | √ | √ | √ |
部署目录:
# 软件包
[starrocks@node230 opt]$ ls /opt/StarRocks/
005 apache_hdfs_broker be fe
# 元数据目录
[starrocks@node230 opt]$ ls /data/starrocks/fe/
log meta
# 数据目录
[starrocks@node230 opt]$ ls /data/starrocks/be/
log storage
官网步骤
- 由于 StarRocks 保证 BE 后向兼容 FE,因此您需要先升级 BE 节点,再升级 FE 节点。错误的升级顺序可能导致新旧 FE、BE 节点不兼容,进而导致 BE 节点停止服务。
升级 BE 节点
- 选择任意一个 BE 节点,替换新版本 /lib/starrocks_be 文件。
- 重启该 BE 节点,通过 BE 日志 be.INFO 查看是否启动成功。
- 如果该 BE 节点启动失败,您可以可以先排查失败原因。如果错误不可恢复,您可以直接通过 DROP BACKEND 删除该 BE、清理数据后,使用上一个版本的 starrocks_be 重新启动该 BE 节点。然后通过 ADD BACKEND 重新添加 BE 节点。
- 警告:该方法会导致系统丢失一个数据副本,请务必确保 3 副本完整的情况下执行这个操作。
[starrocks@node230 ~]$ cd /opt/StarRocks/be/lib/
[starrocks@node230 lib]$ ls
hadoop jdbc_drivers jvm small_file starrocks_be starrocks-jdbc-bridge-jar-with-dependencies.jar udf udf-extensions-jar-with-dependencies.jar udf-runtime
[starrocks@node230 lib]$ mv starrocks_be starrocks_be_230
[starrocks@node230 lib]$ mv ~/starrocks_be .
[starrocks@node230 lib]$ cd ../bin/
[starrocks@node230 bin]$ sh stop_be.sh
[starrocks@node230 bin]$ sh start_be.sh --daemon
be.INFO 日志太多了,也没看到异常,用mysql client 登录后台查看,be 节点存活,Version 变为 2.3.1-fe5d830
[starrocks@node230 bin]$ mysql -uroot -P29030 -h node230 -p123456
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 492
Server version: 5.1.0 StarRocks version 2.3.0
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> SHOW PROC "/backends"\G
*************************** 1. row ***************************
BackendId: 10004
Cluster: default_cluster
IP: xx.xx.xx.230
HeartbeatPort: 29050
BePort: 29060
HttpPort: 28040
BrpcPort: 28060
LastStartTime: 2022-08-01 10:04:48
LastHeartbeat: NULL
Alive: true
SystemDecommissioned: false
ClusterDecommissioned: false
TabletNum: 10132
DataUsedCapacity: .000
AvailCapacity: 259.031 GB
TotalCapacity: 492.027 GB
UsedPct: 47.35 %
MaxDiskUsedPct: 47.35 %
ErrMsg:
Version: 2.3.1-fe5d830
Status: {"lastSuccessReportTabletsTime":"N/A"}
DataTotalCapacity: 259.031 GB
DataUsedPct: 0.00 %
CpuCores: 16
.... 忽略其他节点...
其他节点升级步骤相同
升级 FE 节点
这是测试环境,直接升 fe,坏了也没什么关系
先找到 Follower 节点
MySQL [(none)]> SHOW PROC "/frontends"\G
*************************** 1. row ***************************
Name: xx.xx.xx.230_29010_1659319422586
IP: xx.xx.xx.230
EditLogPort: 29010
HttpPort: 28030
QueryPort: 29030
RpcPort: 29020
Role: FOLLOWER
IsMaster: false
ClusterId: 722458904
Join: true
Alive: true
ReplayedJournalId: 631465
LastHeartbeat: NULL
IsHelper: true
ErrMsg:
StartTime: 2022-08-12 11:26:31
Version: 2.3.0-a9bdb09
*************************** 2. row ***************************
Name: xx.xx.xx.228_29010_1659319382613
IP: xx.xx.xx.228
EditLogPort: 29010
HttpPort: 28030
QueryPort: 29030
RpcPort: 29020
Role: FOLLOWER
IsMaster: false
ClusterId: 722458904
Join: true
Alive: true
ReplayedJournalId: 631464
LastHeartbeat: NULL
IsHelper: true
ErrMsg:
StartTime: 2022-08-12 11:26:19
Version: 2.3.0-a9bdb09
*************************** 3. row ***************************
Name: xx.xx.xx.229_29010_1659319401572
IP: xx.xx.xx.229
EditLogPort: 29010
HttpPort: 28030
QueryPort: 29030
RpcPort: 29020
Role: FOLLOWER
IsMaster: true
ClusterId: 722458904
Join: true
Alive: true
ReplayedJournalId: 631464
LastHeartbeat: NULL
IsHelper: true
ErrMsg:
StartTime: 2022-08-12 11:26:19
Version: 2.3.0-a9bdb09
3 rows in set (0.02 sec)
229 是 master, 228,230 是 Follower, 那就升级 230 了
[starrocks@node230 ~]$ cd /opt/StarRocks/fe/
[starrocks@node230 fe]$ ls
[starrocks@node230 fe]$ cd lib/
[starrocks@node230 lib]$ ls starrocks-fe.jar
starrocks-fe.jar
[starrocks@node230 lib]$ mv starrocks-fe.jar ../starrocks_fe.jar_230
[starrocks@node230 lib]$ mv ~/starrocks-fe.jar .
[starrocks@node230 lib]$ cd ../bin/
[starrocks@node230 bin]$ ls
common.sh fe.pid show_fe_version.sh start_fe.sh stop_fe.sh
[starrocks@node230 bin]$ ./stop_fe.sh
waiting fe to stop, pid: 8962
stop java, and remove pid file.
[starrocks@node230 bin]$ ./start_fe.sh --daemon
- 注:由于 mysql client 连的就是 230,fe 重启后 client 退出,重新登录
MySQL [(none)]> SHOW PROC "/frontends"\G
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
ERROR 2003 (HY000): Can't connect to MySQL server on 'node230' (111)
ERROR: Can't connect to the server
unknown [(none)]>
unknown [(none)]> exit
Bye
MySQL [(none)]> SHOW PROC "/frontends"\G
*************************** 1. row ***************************
Name: xx.xx.xx.230_29010_1659319422586
IP: xx.xx.xx.230
EditLogPort: 29010
HttpPort: 28030
QueryPort: 29030
RpcPort: 29020
Role: FOLLOWER
IsMaster: false
ClusterId: 722458904
Join: true
Alive: true
ReplayedJournalId: 631515
LastHeartbeat: NULL
IsHelper: true
ErrMsg:
StartTime: 2022-08-25 16:48:08
Version: 2.3.1-fe5d830
可以看到 230 节点 Version 已经变为: 2.3.1-fe5d830,继续升级 228 Follower
升级 fe master
master 停止后,就可以看到 master 发生了切换,从 229 切换到 230 了
MySQL [(none)]> SHOW PROC "/frontends"\G
*************************** 1. row ***************************
Name: xx.xx.xx.230_29010_1659319422586
IP: xx.xx.xx.230
Role: FOLLOWER
IsMaster: true # master 切换为 230
ClusterId: 722458904
Join: true
Alive: true
Version: 2.3.1-fe5d830
*************************** 2. row ***************************
Name: xx.xx.xx.228_29010_1659319382613
IP: xx.xx.xx.228
Role: FOLLOWER
IsMaster: false
ClusterId: 722458904
Join: true
Alive: true
Version: 2.3.1-fe5d830
*************************** 3. row ***************************
Name: xx.xx.xx.229_29010_1659319401572
IP: xx.xx.xx.229
Role: FOLLOWER
IsMaster: false
ClusterId: 722458904
Join: true
Alive: true
Version: 2.3.1-fe5d830
3 rows in set (0.02 sec)
升级 Broker
broker 不涉及元数据和数据,直接升级即可
MySQL [(none)]> SHOW PROC "/brokers"\G
*************************** 1. row ***************************
Name: broker_name
IP: xx.xx.xx.228
Port: 8000
Alive: true
LastStartTime: NULL
LastUpdateTime: 2022-08-25 17:17:15
ErrMsg:
*************************** 2. row ***************************
Name: broker_name
IP: xx.xx.xx.229
Port: 8000
Alive: true
LastStartTime: NULL
LastUpdateTime: 2022-08-25 17:17:15
ErrMsg:
*************************** 3. row ***************************
Name: broker_name
IP: xx.xx.xx.230
Port: 8000
Alive: true
LastStartTime: NULL
LastUpdateTime: 2022-08-25 17:17:15
ErrMsg:
3 rows in set (0.00 sec)
欢迎关注Flink菜鸟公众号,会不定期更新Flink(开发技术)相关的推文