Doris集群升级
一、前言
文中的出现的BE二进制文件名称 doris_be
,在之前的版本中为 palo_be
。
- Doris不支持跨两位版本号进行升级。此处的版本号指的是二级版本号(加粗字体0.XXX.123)
二、前置工作
关闭集群副本修复和均衡功能(升级过程可能会重启,触发不必要的集群均衡和副本修复逻辑)
1
2
3
4
5
6
7
8# 关闭副本均衡逻辑。关闭后,不会再触发普通表副本的均衡操作。
admin set frontend config("disable_balance" = "true");
# 关闭 colocation 表的副本均衡逻辑。关闭后,不会再触发 colocation 表的副本重分布操作。
admin set frontend config("disable_colocate_balance" = "true");
# 关闭副本调度逻辑。关闭后,所有已产生的副本修复和均衡任务不会再被调度。
admin set frontend config("disable_tablet_scheduler" = "true");当集群升级完毕后,在通过以上命令将对应配置设为原值即可。
重要!!在升级之前需要备份元数据(整个目录都需要备份)!!
重要!!在升级之前需要备份元数据(整个目录都需要备份)!!
重要!!在升级之前需要备份元数据(整个目录都需要备份)!!
三、测试BE升级正确性
- 选择一个BE节点,部署最新的 doris_be 二进制文件。
- 启动BE节点,通过be.INFO,查看是否启动成功。
- 启动失败解决方案
- 错误不可恢复,
- 可以直接通过 DROP BACKEND 删除该 BE、清理数据后,使用上一个版本的 doris_be 重新启动 BE。
- 然后重新 ADD BACKEND。
- (该方法会导致丢失一个数据副本,请务必确保3副本完整的情况下,执行这个操作!!!)
四、测试 FE 元数据兼容性
重要!!元数据兼容性异常很可能导致数据无法恢复!!
- 单独使用新版本部署一个测试用的 FE 进程(建议在自己本地的开发机,或者BE节点。如果在Follower或者Observer节点上,需要停止启动的进程,但是不建议在Follower或者Observer节点上测试)
- 修改测试用的 FE 的配置文件 fe.conf,将所有端口设置为与线上不同
- 在 fe.conf 添加配置:metadata_failure_recovery=true
- 在 fe.conf 添加配置:metadata_failure_recovery=true
- 拷贝线上环境 Master FE 的元数据目录 doris-meta 到测试环境
- 将拷贝到测试环境中的 doris-meta/image/VERSION 文件中的 cluster_id 修改为 123456(即与第3步中相同)
- 在测试环境中,运行 sh bin/start_fe.sh 启动 FE
- 通过 FE 日志 fe.log 观察是否启动成功。
- 如果启动成功,运行 sh bin/stop_fe.sh 停止测试环境的 FE 进程。
- 以上 2-6 步的目的是防止测试环境的FE启动后,错误连接到线上环境中
注: 1.1.x 版本升级 1.2.x 版本时,需要先删除已有的原生 UDF ;否则会导致FE启动失败;并且1.2版本开始不再对原生 UDF提供支持,请使用 Java UDF。
五、升级准备
- 在完成数据正确性验证后,将 BE 和 FE 新版本的二进制文件分发到各自目录下。