1、Doris 2.0.1 DockerFile 的制作 参考 Doris 2.0.1 Dockerfile制作-CSDN博客
2、之前的Doris 集群通过 Docker容器进行的部署,需提前准备好Doris2.0.1的镜像包
参考:
集群升级 - Apache Doris
Doris 升级请遵守不要跨两个及以上关键节点版本升级的原则,若要跨多个关键节点版本升级,先升级到最近的关键节点版本,随后再依次往后升级,若是非关键节点版本,则可忽略跳过。
1.2.0 - 1.2.5
任意版本 -> 2.0.0-beta
当前集群Doris apache-doris-dependencies-1.2.4.1-bin-x86_64
升级目标Doris 2.0.1
服务器 | 角色 | 容器内安装目录 | 元数据目录 | 日志目录 | |
bigData04 | FE | /opt/doris/doris-fe | /data/fe/doris-meta | /data/fe/log | |
bigData03 | BE | /opt/doris/doris-be | /data/be/storage | /data/be/log | |
bigData08 | BE | /opt/doris/doris-be | /data/be/storage | /data/be/log |
升级流程概览
- 元数据备份
- 关闭集群副本修复和均衡功能
- 兼容性测试
- 升级 BE
- 升级 FE
- 打开集群副本修复和均衡功能
元数据备份(重要)
将 FE-Master 节点的 doris-meta
目录进行完整备份!
cd /data/fe/
cp -r doris-meta doris-meta.backup
备份be节点的元数据
cd /data/be/
sudo cp -r storage storage.backup
关闭集群副本修复和均衡功能
升级过程中会有节点重启,所以可能会触发不必要的集群均衡和副本修复逻辑,先通过以下命令关闭:
# 关闭副本均衡逻辑。关闭后,不会再触发普通表副本的均衡操作。 $ mysql-client > admin set frontend config("disable_balance" = "true"); # 关闭 colocation 表的副本均衡逻辑。关闭后,不会再触发 colocation 表的副本重分布操作。 $ mysql-client > admin set frontend config("disable_colocate_balance" = "true"); # 关闭副本调度逻辑。关闭后,所有已产生的副本修复和均衡任务不会再被调度。 $ mysql-client > admin set frontend config("disable_tablet_scheduler" = "true");
当集群升级完毕后,在通过以上命令将对应配置设为原值即可。
升级
BE 节点
docker ps
load镜像:
docker load -i apache-doris-2.0.1.1-be.tar
复制原be的conf下的be.conf配置文件到 be2中
1、复制原be的conf下的be.conf配置文件到本地目录
容器到本地:
docker cp be:/opt/apache-doris/be/conf/be.conf .
2、停止原BE
登录容器 docker exec -it be bash
停止BE
/opt/apache-doris/be/bin/stop_be.sh
show proc '/backends'\G;
发现alive 已改为false
docker ps -a
3、启动新BE
docker run -itd --restart=always --name=be2 --env FE_SERVERS="fe1:192.168.1.244:9010" --env BE_ADDR="192.168.1.248:9050" -p 8040:8040 -v /data/be/storage:/opt/apache-doris/be/storage -v /data/be/log:/opt/apache-doris/be/log --net=host apache-doris:2.0.1.1-be
4、复制be.conf文件到新be容器
本地到容器:
docker cp be.conf be2:/opt/apache-doris/be/conf/be.conf
3、重启新BE
登录容器 docker exec -it be2 bash
停止BE
/opt/apache-doris/be/bin/stop_be.sh
启动BE2
/opt/apache-doris/be/bin/start_be.sh --daemon
查看:
SHOW PROC '/backends'\G;
依次完成其他 BE 节点升级
升级 FE
复制解压后的新fe文件夹至原fe安装路径下并更名为fe2
cp -r apache-doris-2.0.1-bin-x64/fe doris-fe2
复制原fe的conf下的fe.conf配置文件到 fe2中
cp doris-fe/conf/fe.conf doris-fe2/conf/
停止FE
/opt/doris/doris-fe/bin/stop_fe.sh
启动FE2
/opt/doris/doris-fe2/bin/start_fe.sh --daemon
SHOW PROC '/frontends'\G;
打开集群副本修复和均衡功能
升级完成,并且所有 BE 节点状态变为 Alive
后,打开集群副本修复和均衡功能:
admin set frontend config("disable_balance" = "false");
admin set frontend config("disable_colocate_balance" = "false");
admin set frontend config("disable_tablet_scheduler" = "false");
验证:
curl http://127.0.0.1:8030/api/bootstrap
http://ip:8030/ 使用数据库账号和密码登录
异常问题:
1、[ERROR] 2023-09-14 15:13:50.078 +0800 - execute sql error: errCode = 2, detailMessage = errCode = 2, detailMessage = Not support set 'in_memory'='true' now!
ALTER TABLE dorisonline.ods_contractlist_snapshot set ("in_memory" = "false");
2、flink cdc任务有异常 重启后正常
cdc.fn_cdc_get_all_changes_ ... 提供的参数数目不足
重启后正常