• Doris 2.0.1 DockerFile版 升级实战


    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

    服务器角色容器内安装目录元数据目录日志目录
    bigData04FE/opt/doris/doris-fe/data/fe/doris-meta

    /data/fe/log

    bigData03BE/opt/doris/doris-be/data/be/storage/data/be/log
    bigData08BE/opt/doris/doris-be/data/be/storage/data/be/log

    升级流程概览

    1. 元数据备份
    2. 关闭集群副本修复和均衡功能
    3. 兼容性测试
    4. 升级 BE
    5. 升级 FE
    6. 打开集群副本修复和均衡功能
    元数据备份(重要)

    将 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

    1、复制原be的conf下的be.conf配置文件到本地目录

    容器到本地:

    docker cp be:/opt/apache-doris/be/conf/be.conf .

    mv be.conf be.conf.bak

    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、复制be2 的 be.conf文件到本地

    本地到容器:

    docker cp be2:/opt/apache-doris/be/conf/be.conf .

    修改 be.conf

    主要修改  priority_networks = 192.168.1.0/24

    将 be.conf 上传到be2

    docker cp be.conf be2:/opt/apache-doris/be/conf/be.conf

    3、重启新BE2

    登录容器 docker exec -it be2 bash

    停止BE2

    /opt/apache-doris/be/bin/stop_be.sh

    启动BE2

    /opt/apache-doris/be/bin/start_be.sh --daemon

    查看:

    SHOW PROC '/backends'\G;

    发现启动后backend有自动停止的情况,copy be中的 java-udf-jar-with-dependencies.jar 到be2中

    docker cp java-udf-jar-with-dependencies.jar be2:/opt/apache-doris/be/lib/java-udf-jar-with-dependencies.jar

    依次完成其他 BE 节点升级

    升级 FE

    load镜像:

    docker load -i apache-doris-2.0.1.1-fe.tar

    复制原fe的conf下的fe.conf配置文件到 本地中

    docker cp fe:/opt/apache-doris/fe/conf/fe.conf .

    mv fe.conf fe.conf.bak

    登录fe

    docker exec -it fe bash

    停止FE

    /opt/apache-doris/fe/bin/stop_fe.sh

    退出容器

    exit

    停止fe并删除

    docker stop fe

    docker rm fe

    启动FE2

    docker run -itd --restart=always --name=fe2 --env FE_SERVERS="fe1:192.168.1.244:9010" --env FE_ID=1 -p 8030:8030 -p 9030:9030 -v /data/fe/doris-meta:/opt/apache-doris/fe/doris-meta -v /data/fe/log:/opt/apache-doris/fe/log --net=host apache-doris:2.0.1.1-fe
     

    docker exec -it fe2 bash

    先停止

    /opt/apache-doris/fe/bin/stop_fe.sh

    再启动

    /opt/apache-doris/fe/bin/start_fe.sh --daemon

    SHOW PROC '/frontends'\G;

    show proc '/backends'\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_ ...  提供的参数数目不足
         重启后正常

  • 相关阅读:
    Hive之同比环比的计算
    网络钓鱼技术
    UTONMOS:数字藏品市场将迎来科技大变局
    Batch normalization和Layer normalization
    【BurpSuite】插件开发学习之J2EEScan(下)-主动扫描(31-40)
    Java基础之继承、多态、抽象类
    4.0、C语言——goto语句
    【PCL自学:Segmentation3】基于PCL的点云分割:区域增长分割
    嵌入式Qt-FFmpeg设计一个RTSP播放器
    4.2、Linux进程(1)
  • 原文地址:https://blog.csdn.net/wangqiaowq/article/details/133641119