Apache Doris 升级手册

作者: 张家锋

Doris 可以通过滚动升级的方式,平滑进行升级。升级顺序是先升级BE,再升级FE,不能颠倒升级顺序。Doris保证BE向后兼容FE。

升级的过程可以分为:

  1. 测试 Doris BE 升级的正确性,
  2. 测试 Doris FE 元数据兼容,
  3. 滚动升级
  4. 观察升级后的集群服务

    注:

    1.为了保证在集群升级过程中,Doris服务是可用的,建议Doris集群 在高可用部署的情况下进行。即数据 3 副本,FE 高可用情况下。

    2.Doris 不支持跨两位版本升级,比如你现在使用的是0.12.x版本,不能直接升级到0.14.x版本,必须首先升级0.13.x版本,Doris 可以跨三位版本进行生,比如你可以从0.13.15版本直接升级到0.14.13版本,这点非常重要

    3.Doris FE 元数据目前不支持回退在升级之前一定要做好元数据备份和元数据兼容测试

1.升级准备

准备好要升级的 Doris 安装包,

  1. 准备一个测试FE节点,你可以临时使用某一个BE节点作为测试FE节点,将FE安装包复制到这个节点
  2. 将 BE 和 FE 新版本的二进制文件分发到集群各自节点指定目录下(目录自己指定,不是doris安装目录即可,方便后面升级文件拷贝)。
  3. 小版本升级,BE 只需升级 palo_be;FE 只需升级 palo-fe.jar,建议整体替换fe安装目录下的lib目录。
  4. 大版本升级,则可能需要升级其他文件(包括但不限于 bin/ lib/ 等);如果不确定是否需要替换其他文件,全部替换即可,备份你的 FE 和 BE conf配置文件。
  5. 在正式升级之前为了保证升级失败能回滚,强烈建议备份 Doris FE 的元数据,一旦升级失败因为Doris 元数据不支持兼容低版本,没办法回退

2.测试 Doris BE 升级正确性

  1. 任意选择一个 BE 节点,j将拷贝过来的BE安装包里lib目录下最新的 palo_be 二进制文件,复制到你的Doris BE lib目录下palo_be替换成最新的,(这里如果你不确定,可以替换整lib目录,如果是大版本升级将你的配置文件(conf目录)备份出来,替换整个安装目录,然后将配置文件在还原回去
  2. 重启 BE 节点,通过 BE 日志 be.INFO,查看是否启动成功。
  3. 如果启动成功就可以按照这个方式滚动升级其他BE节点。
  4. 如果启动失败,可以先排查原因。如果错误不可恢复,可以直接通过 DROP BACKEND 删除该 BE、清理数据后,使用上一个版本的 palo_be 重新启动 BE。然后重新 ADD BACKEND。(该方法会导致丢失一个数据副本,请务必确保3副本完整的情况下,执行这个操作!!!

3.测试 Doris FE 元数据兼容性

![警告 (3)]:重要预警!!元数据兼容性异常很可能导致数据无法恢复!!

  1. 单独使用新版本部署一个测试用的 FE 进程(比如自己本地的开发机,或者其他的BE节点)。
  2. 修改测试用的 FE 的配置文件 fe.conf。
  3. 在 fe.conf 添加配置:cluster_id=123456
  4. 在 fe.conf 添加配置:metadata_failure_recovery=true
  5. 拷贝线上环境 Master FE 的元数据整个目录到你刚部署的测试环境
  6. 将拷贝到测试环境中的doris-meta/image/VERSION 文件中的 cluster_id 修改为 123456(即与第3步中相同)
  7. 在测试环境中,运行 sh bin/start_fe.sh 启动 FE
  8. 通过 FE 日志 fe.log 观察是否启动成功。
  9. 如果启动成功,运行 sh bin/stop_fe.sh 停止测试环境的 FE 进程。
  10. 以上 2-6 步的目的是防止测试环境的FE启动后,错误连接到线上环境中。

4.滚动升级

  1. 在完成 BE 数据正确性及 FE 元数据兼容性验证后,将 BE 和 FE 新版本的二进制文件分发到各自目录下。
  2. 通常小版本升级,BE 只需升级 palo_be;而 FE 只需升级 palo-fe.jar。如果是大版本升级,则可能需要升级其他文件(包括但不限于 bin/ lib/ 等等)如果你不清楚是否需要替换其他文件,建议全部替换。
  3. 确认新版本的文件部署完成后。逐台重启 FE 和 BE 实例即可,首先完成BE的升级,重启。然后在重启FE
  4. 建议逐台重启 BE 后,再逐台重启 FE。因为通常 Doris 保证 FE 到 BE 的向后兼容性,即老版本的 FE 可以访问新版本的 BE。但可能不支持老版本的 BE 访问新版本的 FE。
  5. 建议确认前一个实例启动成功后,在重启下一个实例。实例启动成功的标识

文章列表

更多推荐

更多
  • Pulsar消息队列-一套高可用实时消息系统实现 实时消息【即时通信】系统,有群聊和单聊两种方式,其形态异于消息队列:1 大量的 group 信息变动,群聊形式的即时通信系统在正常服务形态下,瞬时可能有大量用户登入登出。2 ...
  • Pulsar消息队列-Pulsar对比Kafka笔记 很多人查看 Pulsar 之前可能对 Kafka 很熟悉,参照上图可见二者内部结构的区别,Pulsar 和 Kafka 都是以 Topic 描述一个基本的数据集合,Topic 数据又分为若干 Partition,即对数据进行逻辑上的 ...
  • Pulsar消息队列-对 2017 年一套 IM 系统的反思 信系统的开发,前前后后参与或者主导了六七个 IM 系统的研发。上一次开发的 IM 系统的时间点还是 2018 年,关于该系统的详细描述见 [一套高可用实时消息系统实现][1] ...
  • Apache APISIX文档-快速入门指南-如何构建 Apache APISIX 如何构建 Apache APISIX,步骤1:安装 Apache APISIX,步骤2:安装 etcd,步骤3:管理 Apache APISIX 服务,步骤4:运行测试案例,步骤5:修改 Admin API key,步骤6:为 Apac
  • Apache APISIX文档-快速入门指南-快速入门指南 快速入门指南,概述,前提条件,第一步:安装 Apache APISIX,第二步:创建路由,第三步:验证,进阶操作,工作原理,创建上游服务Upstream,绑定路由与上游服务,添加身份验证,为路由添加前缀,APISIX Dashboard
  • Apache APISIX文档-架构设计-APISIX APISIX,软件架构,插件加载流程,插件内部结构,配置 APISIX,插件加载流程,比如指定 APISIX 默认监听端口为 8000,并且设置 etcd 地址为 http://foo:2379, 其他配置保持默认。在 ...
  • Apache APISIX文档-架构设计-Service Service 是某类 API 的抽象(也可以理解为一组 Route 的抽象)。它通常与上游服务抽象是一一对应的,Route 与 Service 之间,通常是 N:1 的关系,参看下图。不同 Route 规则同时绑定到一个 Service ...
  • Apache APISIX文档-架构设计-Plugin Config 如果你想要复用一组通用的插件配置,你可以把它们提取成一个 Plugin config,并绑定到对应的路由上。举个例子,你可以这么做:创建 Plugin config,如果这个路由已经配置了 plugins,那么 Plugin config ...
  • Apache APISIX文档-架构设计-Debug Mode 注意:在 APISIX 2.10 之前,开启基本调试模式曾经是设置 conf/config.yaml 中的 apisix.enable_debug 为 true。设置 conf/debug.yaml 中的选项,开启高级调试模式。由于 ...
  • Apache APISIX文档-架构设计-Consumer 如上图所示,作为 API 网关,需要知道 API Consumer(消费方)具体是谁,这样就可以对不同 API Consumer 配置不同规则。授权认证:比如有 [key-auth] 等。获取 consumer_...
  • 近期文章

    更多
    文章目录

      推荐作者

      更多