Apache Doris 极简运维之BE扩缩容(1)

news2024/12/24 21:33:45

Apache Doris 极简运维之BE扩缩容(1)

  • 一、环境信息
    • 硬件信息
    • 软件信息
  • 二、缩容
    • 2.1 DROP BACKEND缩容
    • 2.2 DECOMMISSION BACKEND缩容
      • 2.2.1 缩容前
      • 2.2.2 缩容中
      • 2.2.3 缩容后
  • 三、扩容
    • 3.1 扩容前
    • 3.2 扩容中
    • 3.3 扩容后
  • 四、总结

一、环境信息

已部署三个BE节点并且状态显示正常运行中

硬件信息

  1. CPU :1C
  2. CPU型号:ARM64
  3. 内存 :2GB
  4. 硬盘 :36GB SSD

软件信息

  1. VM镜像版本 :CentOS-7
  2. Apahce Doris版本 :1.2.4.1
  3. 集群规模:1FE * 3BE

二、缩容

2.1 DROP BACKEND缩容

注意:DROP BACKEND 会直接删除该 BE,并且其上的数据将不能再恢复!!!
所以强烈不推荐使用 DROP BACKEND 这种方式删除 BE 节点。当使用这个语句时,会有对应的防误操作提示。

-- ALTER SYSTEM DROP BACKEND "be_host:be_heartbeat_service_port"; -- 会有误操作提示
-- ALTER SYSTEM DROPP BACKEND "be01:9050"; --直接删除,慎用!

2.2 DECOMMISSION BACKEND缩容

DECOMMISSION 命令说明:

  1. 该命令用于安全删除 BE 节点。命令下发后,Doris 会尝试将该 BE 上的数据向其他 BE 节点迁移,当所有数据都迁移完成后,Doris 会自动删除该节点。
  2. 该命令是一个异步操作。执行后,可以通过 SHOW PROC ‘/backends’; 看到该 BE 节点的 isDecommission 状态为 true。表示该节点正在进行下线。
  3. 该命令不一定执行成功。比如剩余 BE 存储空间不足以容纳下线 BE 上的数据,或者剩余机器数量不满足最小副本数时,该命令都无法完成,并且 BE 会一直处于 isDecommission 为 true 的状态。
  4. DECOMMISSION 的进度,可以通过 SHOW PROC ‘/backends’; 中的 TabletNum 查看,如果正在进行,TabletNum 将不断减少。
  5. 该操作可以通过:
CANCEL DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";

命令取消。取消后,该 BE 上的数据将维持当前剩余的数据量。后续 Doris 重新进行负载均衡

-- ALTER SYSTEM DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";
ALTER SYSTEM DECOMMISSION BACKEND "be01:9050";

2.2.1 缩容前

http://192.168.31.78:8030/System?path=//backends查看be节点信息

在这里插入图片描述

2.2.2 缩容中

缩容失败;缩容BE节点一直处于 isDecommission 为 true的状态,因为剩余机器数量不满足最小副本数(3个副本)。

在这里插入图片描述

  1. 取消DECOMMISSION BACKEND 并将3副本的表都调成2副本
-- 取消DECOMMISSION BACKEND
-- CANCEL DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";
CANCEL DECOMMISSION BACKEND "be01:9050";

-- 3副本表调成2副本
-- 非分区部分
ALTER TABLE db.table_name SET ("default.replication_num" = "2");
ALTER TABLE db.table_name SET ("default.replication_allocation" = "tag.location.default: 2");
-- 分区部分
ALTER TABLE zbh_test.dwd_lbu_mbi_bil_income_d02 MODIFY PARTITION (逗号分隔可填写多个分区名) SET("replication_num"="2");

-- 如下图所示tablet数开始减少至2副本的量

在这里插入图片描述

  1. 满足缩容的副本要求后,重新执行DECOMMISSION BACKEND
-- ALTER SYSTEM DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";
ALTER SYSTEM DECOMMISSION BACKEND "be01:9050";

在这里插入图片描述

2.2.3 缩容后

副本自动均衡至非下线节点,副本均衡完毕后会自动drop掉下线的be节点,但进程需要自己去stop

# 需要手动停止be进程
sh bin/stop_be.sh 

在这里插入图片描述

三、扩容

3.1 扩容前

在这里插入图片描述

3.2 扩容中

-- 新增be节点,需要确保已经start相应的be进程
alter system add backend "192.168.31.136:9050"

-- 如下图所示新be已经加入集群并开始自动进行数据均衡了

在这里插入图片描述

3.3 扩容后

数据完全均衡后如下图所示,几乎等同于be缩容完成前2副本的tablet分布

在这里插入图片描述

四、总结

  1. 扩容会自动进行数据均衡
  2. 缩容会自动进行数据均衡,但需要注意不能直接DROP,需要走DECOMMISSION并且sh stop_be.sh
  3. 迁移效率参考:16:32开始复制迁移(1.590 TB / 141tablets);17:39迁移完成,平均1667235m / 4020s = 414m/s(大表耗时,可通过weiui的statistic查看还在迁移的tablet);迁移完后节点就完成下线、show PROC '/backends’也不会出现下线节点了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/904921.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

十二、Linux如何修改文件/文件夹所属用户or用户组?chown命令

目录 1、基础语法 2、修改目标用户: 3、修改用户组: 4、使用-R命令,并同时修改用户/用户组 1、基础语法 chown [-R] [目标用户][:][目标用户组] 被修改文件/文件夹 (1)选项-R:同chmod,对文…

Yellowbrick新手入门简介:用于Python机器学习模型可视化的工具库

Yellowbrick 是一个新的 Python 库,它扩展了 Scikit-Learn API,将可视化合并到机器学习工作流程中。 Yellowbrick需要依赖诸多第三方库,包括Scikit-Learn,Matplotlib,Numpy等等。 Yellowbrick 是一个开源的纯 Python…

resource doesn‘t have a corresponding Go package.

resource doesnt have a corresponding Go package. GO这个鬼东西不能直接放src下。 ************ Building Go project: ProjectGoTest ************with GOPATH: D:\Go;D:\eclipse-jee-oxygen-2-win32-x86_64\workspace\ProjectGoTest >> Running: D:\Go\bin\go.exe …

项目管理实战笔记1:项目管理常识

序 看了下极客时间的《项目管理实战》,觉得跟之前学习PMP的标准资料还是有所侧重。重新整理下,相比书上繁杂的知识,这个更通俗易懂。 1 角色转换:三大误区 误区1:事必躬亲 自己做事情是可控的,做项目依赖…

树莓派第一讲:入门那些事(系统烧录、外设连接)

目录 基本了解: 系统烧录: 连接外设: 基本了解: 树莓派4B是一款单板计算机,采用ARM架构处理器,配备4GB内存、Gigabit以太网口、多个USB接口、HDMI输出接口等。它具备1.5Ghz运行的64位四核处理器&#x…

通过安全日志读取WFP防火墙放行日志

前言 之前的文档中,描写了如何对WFP防火墙进行操作以及如何在防火墙日志中读取被防火墙拦截网络通讯的日志。这边文档,着重描述如何读取操作系统中所有被放行的网络通信行为。 读取系统中放行的网络通信行为日志,在win10之后的操作系统上&am…

vmware17 开启虚拟化

前言 有时候需要在虚拟机上安装虚拟机,方便做一些测试 解决办法 在vmware17 上对虚拟机开启虚拟化即可 下图中都勾上即可 设置完成之后就可以在虚拟机上安装虚拟机

【LLM评估篇】Ceval | rouge | MMLU等指标

note 一些大模型的评估模型:多轮:MTBench关注评估:agent bench长文本评估:longbench,longeval工具调用评估:toolbench安全评估:cvalue,safetyprompt等 文章目录 note常见评测benchm…

18.安全机制

文章目录 安全机制认证(Authentication)鉴权(Authorization)概念和组成创建Role和ClusterRole创建RoleBinding 和ClusterRoleBindingResources 准入控制(Admission Control)实验:创建一个用户管…

模型微调(fine-tune)

一、关于模型微调的一些基础知识 1、模型微调(fine-tune) 微调(fine-tune)通过使用在大数据上得到的预训练好的模型来初始化自己的模型权重,从而提升精度。这就要求预训练模型质量要有保证。微调通常速度更快、精度更高。当然,自己…

解放数据库,实时数据同步利器:Alibaba Canal

文章首发地址 Canal是一个开源的数据库增量订阅&消费组件,主要用于实时数据同步和数据订阅的场景,特别适用于构建分布式系统、数据仓库、缓存更新等应用。它支持MySQL、阿里云RDS等主流数据库,能够实时捕获数据库的增删改操作&#xff…

nvm的安装配置(node多版本切换控制)

安装 1. 首先要先卸载已安装的node 找到node,卸载就可以。 2. 下载 NVM 直接进入安装包下载地址:https://github.com/coreybutler/nvm-windows/releases,选择 nvm-setup.zip,下载后直接安装。 3. 配置环境变量(有的电脑会配好…

linux学习(文件系统+inode)[14]

输出重定向可分离 stdout -> 1printf("hello printf 1\n");fprintf(stdout,"hello fprintf 1\n");// stderr -> 2errno 1;perror("hello perror 2"); //stderrconst char *s1 "hello write 1\n";write(1, s1, strlen(s1));con…

PV3D: A 3D GENERATIVE MODEL FOR PORTRAITVIDEO GENERATION 【2023 ICLR】

ICLR:International Conference on Learning Representations CCF-A 国际表征学习大会:深度学习的顶级会议 生成对抗网络(GANs)的最新进展已经证明了生成令人惊叹的逼真肖像图像的能力。虽然之前的一些工作已经将这种图像gan应用于无条件的2D人像视频生…

人工智能轨道交通行业周刊-第56期(2023.8.14-8.20)

本期关键词:数字化建设、巡检机器人、智慧城轨、福州地铁4号线、避雷器、LangChain 1 整理涉及公众号名单 1.1 行业类 RT轨道交通人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网上榜铁路视点ITS World轨道交通联盟VSTR铁路与城市轨道交通RailMet…

vactor中迭代器失效问题

目录 什么是迭代器失效导致迭代器失效的操作VS和g环境下对与迭代器失效的态度 什么是迭代器失效 迭代器的底层其实就是一个指针,或者对指针进行了封装 vector的迭代器就是一个指针T* 一个迭代器指向某一个空间,此时这块空间被释放了,这个迭…

【Spring Boot】详解条件注解以及条件拓展注解@Conditional与@ConditionOnXxx

Spring Conditional Spring 4.0提供的注解。作用是给需要装载的Bean增加一个条件判断。只有满足条件才会装在到IoC容器中。而这个条件可以由自己去完成的,可以通过重写Condition接口重写matches()方法去实现自定义的逻辑。所以说这个注解增加了对Bean装载的灵活性。…

OJ练习第153题——分发糖果

分发糖果 力扣链接:135. 分发糖果 题目描述 n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求,给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。 相邻两个孩子评分更高的孩子会获得更多的糖果。…

一篇文章搞懂MVCC

事务 什么是事务?当事务对数据库进行多个更改时,要么在事务提交时所有更改都成功,要么在事务回滚时所有更改都被撤销。 在 MySQL 中,事务支持是在引擎层实现的。MySQL 是一个支持多引擎的系统,但并不是所有的引擎都支…

详解反向迭代器适配器

目录 一、基本介绍 二、模拟实现 2.1 - operator* 2.2 - vector 和 list 的反向迭代器 一、基本介绍 反向迭代器适配器(reverse_iterator),可简称为反向迭代器或逆向迭代器,常用来对容器进行反向遍历。 反向迭代器底层只能选…