老张用 Workload Group 当“班主任“,把Doris集群治理得服服贴贴

Doris Workload Group 显示异常排查:Ranger 权限与版本兼容的双重挑战 摘要: 某Doris 2.1.9集群集成Apache Ranger后,出现自定义Workload Group"消失"问题,但配置验证显示资源组已生效。排查发现并非版本缺陷,而是Ranger权限拦截所致。关键原因在于USAGE权限缺失导致元数据访问被拒绝。解决方案包括在Ranger中配置USAGE权限、验证权限生效及建议版本升级。案例揭示了权限管控与版本缺陷的叠加效应,强调分层验证和对比测试的重要性。通过配置Ranger权限策略,最终解决了Workload Group显示异常问题,验证了权 阅读详情

数据库老张正呼呼大睡着,突然被告警电话吵醒:
"老张,快看监控,集群要炸了!“这已经是本周第三次了。
每次都是那个数据分析师的"神仙查询”,一跑就把内存吃光,害得其他查询都跪了。
正当老张抱怨"这日子没法过了"的时候,他发现了Doris有个救命稻草——Workload Group。
这个"资源管理老师"不仅能管住调皮的查询,还能让不同业务和谐共处。从此,老张终于能睡个安稳觉了。
今天,让我们跟着老张一起,揭秘这个让DBA摆脱"通宵值守"的法宝!

[]

Doris多租户战争中的和平使者

运维老李一大早就收到告警,气急败坏地喊来了数据库老张: “老张,快来看监控,那个大数据分析师又把集群跑挂了!”

"唉,又是这样。"老张叹了口气,“昨天是机器学习团队的特征计算把CPU打满,前天是BI团队的即席查询吃光内存,今天又是数据分析师的全表扫描…”

这种场景相信很多Doris运维同学都不陌生。

在一个共享的数据库集群里,各种查询好比一群贪吃的小朋友,都想抢占最多的资源。如何让他们和平共处?这就需要一个"资源管理老师" - Workload Group登场了。

[tu]

Doris Workload Group好比一所特殊的"查询学校"的"班主任"管理员。

在这所学校里,不同类型的查询就像不同班级的学生:ETL作业是勤勤恳恳的实验班,报表查询是需要准时完成作业的重点班,即席查询则像个创新实验室,充满了不确定性。

每个"班级"都有自己的专属教室(CPU资源)、自习室(内存空间)和图书借阅配额(IO带宽)。学校里有两种管理模式:

温柔模式(软限制):

  • CPU教室:空教室可以借用给需要加班的同学
  • 自习室:图书馆没人时可以多占几个座位
  • 但一旦资源紧张,必须按原定计划让座

严格模式(硬限制):

  • CPU教室:只能用自己班的教室,不得超员
  • 自习室:超出座位限制就请同学离开
  • 图书借阅:每天固定配额,绝不超借

老张配置好Workload Group后,终于不用再担心"熊孩子"们打架了:

  • ETL作业乖乖待在实验室做大规模计算
  • 报表查询按时完成日常作业不受干扰
  • 即席查询有了自己的创新空间又不会影响他人

最妙的是,这些规则都是自动执行的,再也不用半夜被告警电话吵醒了!

Doris资源调度指南

运维老李八卦地问道: “老张,我发现你最近都睡得挺好,不再有半夜被电话轰炸的情况了?”

“可不是嘛!自从给’查询学校’配好’课程表’后,日子清静多了。”,老张得意地晃了晃手中的咖啡杯: “我来分享下这套’教学管理系统’的配置经验。”

[tu]

"来,我们先给’查询学校’装修一下教室。"老张打开了终端,开始演示配置步骤:

环境装修

"首先要给每个班级划分专属区域。"老张解释道,“我们用CGroup来实现这个功能。”

# 详细步骤参考:https://doris.apache.org/zh-CN/docs/dev/admin-manual/workload-management/workload-group
# 创建cgroup目录(如果是cgroup v1就在cpu目录下新建)
mkdir /sys/fs/cgroup/cpu/doris

# 设置权限
chmod 770 /sys/fs/cgroup/cpu/doris
chown -R doris:doris /sys/fs/cgroup/cpu/doris

“这就像给学校划分好了教学楼和活动区,接下来就可以开始’招生’了!”

班级配置艺术

"现在来创建不同的’班级’。"老张熟练地敲击键盘:

-- 创建ETL实验班
CREATE WORKLOAD GROUP etl_group PROPERTIES(
    'cpu_share' = '1024',
    'memory_limit' = '40%',
    'enable_memory_overcommit' = 'false'
);

-- 创建报表重点班
CREATE WORKLOAD GROUP report_group PROPERTIES(
    'cpu_hard_limit' = '50%',
    'memory_limit' = '30%',
    'max_concurrency' = '20'
);

“看到了吗?ETL班用的是CPU软限制,像个开放的实验室;报表班用的是CPU硬限制,就像固定教室只给重点班使用。”

学籍管理妙招

"有了班级,还要给学生分配班级。"老张继续演示:

-- 设置用户默认组
SET PROPERTY FOR 'etl_user' 'default_workload_group' = 'etl_group';

-- 临时调整组别
SET workload_group = 'report_group';

“这样,ETL用户的查询就会自动进入ETL实验室,需要时还可以临时换到其他教室。”

监控巡查有方

"最后别忘了装个’监控摄像头’。"老张打开了监控面板:

-- 查看资源使用情况
SELECT * FROM information_schema.workload_group_resource_usage;

“这样就能实时看到每个’班级’的表现了:谁在偷懒,谁太活跃,一目了然!”

老李看得连连点头:“妙啊!这套系统既能让学生各司其职,又能灵活调配资源。”

"关键是要用对方法。"老张总结道,“好比带孩子,既不能太严厉,也不能太放纵。找到平衡点,整个’学校’就能和谐运转了。”

Doris"查询学校"实战演练记

"老张,临时有个业务需求,能给讲讲你们线上是怎么玩转Workload Group的吗?"某日,隔壁团队的小王找上了老张。

"正好我这儿有几个经典案例。"老张打开了他的"成功案例"笔记本。

[tu]

"说个我们遇到的典型问题。"老张喝了口咖啡,“之前有个数据分析师,喜欢写即席查询做数据探索,动不动就是全表扫描,经常把内存吃光。”

即席查询驯服记

"看看这个内存使用曲线。"老张指着监控图表,“每次他的查询一跑,内存就像坐过山车。我们是这样解决的:”

-- 创建即席查询专属组
CREATE WORKLOAD GROUP adhoc_group PROPERTIES(
    'memory_limit' = '30%',
    'enable_memory_overcommit' = 'false',
    'max_concurrency' = '5',
    'max_queue_size' = '10',
    'queue_timeout' = '300000'
);

“这就像给他划了个小实验室,只能用30%的内存,最多同时跑5个查询,其他的要排队,等待超过5分钟就自动取消。”

监控显示,配置后内存用量平稳了,其他业务也不受影响了。

ETL任务的CPU之争

"再说个CPU管理的案例。"老张继续道,“我们有个ETL任务,每天凌晨要处理大量数据,CPU使用率经常90%以上,导致早上上班后报表查询特别慢。”

解决方案是设置CPU硬限制:

-- 配置ETL组CPU限制
CREATE WORKLOAD GROUP etl_group PROPERTIES(
    'cpu_hard_limit' = '30%',
    'read_bytes_per_second' = '104857600'
);

-- 配置报表组
CREATE WORKLOAD GROUP report_group PROPERTIES(
    'cpu_hard_limit' = '50%'
);

“这样ETL任务最多只能用30%的CPU,主要算力留给报表使用。而且我们还限制了它的IO,防止疯狂读盘影响其他查询。”

…

小王听得连连点头:“这么看来,Workload Group就像个智能管家,给每个业务都安排得妥妥的。”

"对,关键是要理解各个业务的特点。"老张总结道,“比如即席查询需要内存控制,ETL需要CPU限制,数据导入要管理IO。配置合理了,整个系统就能运转自如。”

"最重要的是,再也不用半夜爬起来处理告警了!"老张得意地伸了个懒腰。

这就是老张的Workload Group实战经验分享,希望能帮助你解决Doris资源管理的烦恼。

下期,我们将一起探讨其它更有趣有用有价值的内容,敬请期待!

【doris】分布式安装(二)- workload group 本文介绍了Doris数据库中的Workload Group资源分配和权限管理。Workload Group通过细粒度的资源划分(CPU、内存、IO)实现负载隔离,支持软限和硬限两种模式。软限动态调整资源分配,硬限则严格限制资源使用。文章详细讲解了如何配置硬限,包括服务器准备、CGroup设置、BE和FE的配置调整,以及如何通过SQL语句配置Workload Group的硬限参数。此外,还介绍了如何创建新用户、分配权限,并将其加入特定的Workload Group。本文为Doris的资源管理和权限控制提供了基 阅读详情

相关推荐

Doris实战——银联商务实时数仓构建

Doris实战——银联商务实时数仓构建

爱吃辣条的博客 2257

Doris workload group实战

2.给用户赋予数据库权限 全局开启,已经开启的话就不用再执行了 创建workload group 5.给用户赋予WORKLOAD权限

wangleigiser的博客 1964

Doris实战——特步集团零售数据仓库项目实践

Doris实战——特步集团零售数据仓库项目实践

爱吃辣条的博客 2368

Doris多租户资源、库、表、字段管理详细步骤

如果workload已经绑定用户或者角色 需要删除得需要先分配给 normal,才可进行删除,或者取消对应角色/用户授权也可删除。库表权限:SELECT_PRIV,LOAD_PRIV,ALTER_PRIV,CREATE_PRIV,DROP_PRIV。1、在 FE 中开启 CPU 的硬限的功能,如果有多个 FE,那么需要在每个 FE 上都进行相同操作。ctl.db.* 权限可以应用于指定库下的所有表。2、查看所有授权,可以查看到该资源组已授权成功。2、查看所有授权,可以查看到该资源组已授权成功。

sunxunyong的博客 1168

【FPGA】安路FPGA下载器驱动安装教程

#来自学渣的问候 最近正在参加19年的FPGA创新设计大赛,然后我们选择了安路(全名:上海安路信息科技有限公司)的 FPGA 开发板。安路算是国产FPGA中还不错的一家,和紫光一样,除了自主生产的FPGA,也开始拥有了自己的编译环境。 好了。言归正传,写这篇博客的原因是,前几天在安装 安路 的编译环境和下载器驱动的时候,出了点问题,弄得心烦意乱。所以打算解决之后写篇博客,避开这个神奇的问题。 首先...

Ninquelote的博客 2万+

Visual Studio 6.0 镜像下载全指南:从企业版到中文版

本文提供Visual Studio 6.0企业版和中文版的镜像下载全指南,包括详细版本解析、已验证的下载链接及校验信息。针对现代系统的安装技巧和兼容性处理方案,帮助开发者高效获取并运行这一经典开发工具,特别适合维护遗留系统的专业人员。

weixin_33712987的博客 1001

Apache Doris 基于 Workload Group 的负载隔离能力解读|Deep Dive

技术团队现如今企业的数据查询需求在不断增多,在共享同一集群时,往往需要同时面对多个业务线或多种分析负载的并发查询。在有限的资源条件下,查询任务间的资源抢占将导致性能下降甚至集群不稳定,因此负载管理的重要性不言而喻。在早期版本中,Apache Doris 推出了基于资源标签(Resource Tag)的隔离方案,包括集群内节点级别的资源组划分以及针对单个查询的资源限制,实现了不同用户间的资源物理隔离。而为给用户提供更完善的负载管理方案,

SelectDB 1849

Android Geckoview实战:5分钟搞定JS与原生交互(附完整Demo代码)

本文详细介绍了在Android应用中使用GeckoView替代系统WebView,构建稳定高效的JavaScript与原生代码交互桥梁的实战方法。通过WebExtension架构,文章提供了从环境配置、扩展开发到Android端集成的完整步骤,并附有可运行的Demo代码,帮助开发者快速解决混合应用中的兼容性问题。

u5v6w7的博客 934

doris:Workload Group

doris:Workload Group

qq_36070104的博客 1172

信息化建设项目前期方案编制4:如何画好四张图

这里探讨以下具体的总体设计操作层面的工作。总体设计主要是完成四张图,总体架构(逻辑架构)、应用架构、网络拓扑、系统部署图。对于一些单一的系统,往往总体架构和应用架构可以合一。网络拓扑画好了,系统部署图也可以省略。有些项目还会在这之外,有所谓的技术架构图。对应用系统、数据存储等各个部分各自用的主要技术、服务等,给出总体设计图。但通常来说,这四张图在一个中等规模(200~500万,软件...

Leonardo的博客 4636

pandas,构造MultiIndex的四种方法:from_tuples、from_arrays、from_product、from_frame

1、from_tuples:通过 “元组对” 构造MultiIndex """ 一对元组,为一个索引 """ tuples = [(1, 'red'), (1, 'blue'), (2, 'red'), (2, 'blue')] pd.MultiIndex.from_tuples(tuples, names=('number', 'color')) 2、from_arrays:通过 “列表元素的组合” 构造MultiIndex """ 列中表的元素,按位置 对应组合,形成索引 """ arrays

jieru_liu的博客 5387

workload 资源隔离 操作

- 设置一个默认的,如果不设置 默认是normal, 当前执行sql前执行session 变量,使用到 workload_group 分组。"enable_memory_overcommit"="true", -- 内存软隔离。"enable_memory_overcommit"="true", -- 内存软隔离。"enable_memory_overcommit"="true", -- 内存软隔离。BE 主要针对导数,olap大查询,按队例,oltp即时查询。-- 导入角色对表的操作全部权限。

celltobig的专栏 986

使用安卓的IMU数据进行 行人航位推算(PDR)推算步长 附python 代码

加速度计数据、陀螺仪数据、重力传感器数据、姿态仰角数据。数据分析与定位轨迹生成主要使用Python离线完成。示意图。

三维点云技术探索 1913

ETLCloud+Doris组合:数据集成,更简单更高效

ETLCloud与Doris组合提供高效数据集成解决方案,支持实时数据写入查询,通过拖拽式界面简化数据集成流程,增强数据分析能力,降低运维成本,助力企业实现数据驱动决策。

RestCloud的博客 1211

Transformer在BEV感知中的统治地位

Transformer在BEV感知中的统治地位 ,人工智能,计算机视觉,大模型,AI,本文围绕 Transformer 在 BEV 感知中的统治地位展开,介绍了 Transformer 的基础原理,如自注意力、多头注意力机制等,以及 BEV 感知的概念、任务与挑战。阐述了 Transformer 在 BEV 感知中的技术优势,包括全局建模、灵活特征融合和长距离依赖捕捉能力,还介绍了典型架构、代码示例及在自动驾驶目标检测等领域的应用案例。同时,评估了其性能,提及优化方法,并展望了与其他技术融合、端到端系统等…

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 20万+

手把手教你学simulink(32.1)--汽车电动机管理场景示例:基于Simulink的发动机管理系统中的混合动力车辆能量管理优化

本项目旨在设计和实现一个用于混合动力车辆(Hybrid Electric Vehicle, HEV)的能量管理优化系统(Energy Management Optimization System, EMOS)。通过Simulink进行建模和仿真,确保系统的稳定性和性能。该系统采用了先进的控制策略,如模型预测控制(MPC)、模糊逻辑控制、自适应控制等,以优化燃油经济性、减少排放,并提高驾驶体验。

MHD0815的博客 186

Istio对接虚拟机

按照官方文档配置,但是却没有成功,问题还在查询中,问题生成的hosts文件为空,虚拟机上istio启动失败,以下是操作步骤大致原理istio通过workloadEntry和serviceEntry来关联和管理虚拟机,一个workloadEntry可以用来描述一个vm实例,serviceEntry通过workloadSelector标签来绑定workloadEntry,虚拟机启动一个实例时会自动注册,此时istio就可以访问虚拟机了。...

gpy1240301202的博客 1522

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

解决Apache Doris占用CPU和内存过高

解决Apache Doris占用CPU和内存过高

ronshi的博客 5053

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

doris:调度管理

doris:调度管理

qq_36070104的博客 1601

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%

亲爱的社区小伙伴们,我们很高兴地向大家宣布,在 3 月 8 日我们引来了的正式发布,欢迎大家下载使用。在 2.1.0 版本的研发过程中,后续我们将会持续敏捷发版来响应所有用户对功能和稳定性的更高追求,欢迎大家在使用过程中给予我们更多反馈。

SelectDB 4260

【Doris实战】Doris上资源管理调研说明

Doris如何进行资源隔离。多租户使用Doris需要的资源管理

有问题的请私信或关注v【技术印记】留言 1512

Flink 学习日志 03:自定义一个SourceFunction,完成对Redis中数据的读取

本文介绍了在Flink中自定义SourceFunction读取Redis数据的完整流程:通过Jedis客户端连接WSL2中的Redis服务,编写RedisSource实现循环读取所有Key-value并逐条输出,结合Thread.sleep()实现每秒一条的流式效果。关键步骤包括环境准备、添加Jedis依赖、配置IDEA运行时加载provided依赖,并注意生产环境中应避免使用阻塞的keys *,改用scan命令。最终实现动态读取、实时打印,验证了Flink与Redis的数据集成能力。

木木的学习笔记 413

Day3 - Flink 窗口与时间语义:从滚动窗口到迟到数据处理

水位线是一个特殊的时间戳,代表"小于这个时间戳的数据都已经到齐了比如水位线推进到 10:00:05,就告诉 Flink:10:00:05 之前的数据应该都到了,如果还有晚于这个时间到达但时间戳小于 10:00:05 的数据,就是"迟到数据"。窗口大小固定,窗口之间不重叠,数据只属于一个窗口。时间线: 0 10 20 30 40 50 60窗口1: [--------)窗口2: [--------)窗口3: [--------)窗口4: [--------)

YEEMOLY的博客 245

智能问诊的流程

本文介绍基于FastAPI构建的医疗多Agent系统MediAgent,通过症状分析、诊断推理与治疗建议等模块协同,实现从问诊到报告生成的完整工作流。系统采用前后端分离架构,结合MySQL、RabbitMQ与Docker实现工程化部署,支持异步化验结果接入。虽当前状态暂存于内存,但已具备可扩展性,未来可通过Redis持久化、消息队列联动及医疗安全机制完善,应用于慢病管理、辅助决策等场景,推动AI在医疗流程中的落地应用。

Joey 的工作空间~ 591
上一篇: 3分钟搞懂Arrow Flight SQL,让数据传输提速100倍的秘密
下一篇: 全网最全Doris+DeepSeek使用手册(客服/图表/PPT/贺岁诗)!学会了Doris熟练度提高90%【建议收藏】
一臻数据
博客等级 码龄4年 670粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值