news 2026/5/1 1:00:00

flink使用 DominantResourceCalculator (主导资源计算器)策略并指定容器 vcore 数指定 yarn 容器的 vcore 数,提交.

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
flink使用 DominantResourceCalculator (主导资源计算器)策略并指定容器 vcore 数指定 yarn 容器的 vcore 数,提交.

在 Apache Flink 中使用DominantResourceCalculator策略配置 YARN 容器的 vCore 数,需通过以下步骤实现:

JobManager 1 个,占用 1 个容器,vcore = 1
TaskManager 3 个,占用 3 个容器,每个容器 vcore = 3,总 vcore = 3*3 = 9


1. 理解 DominantResourceCalculator

该策略基于主导资源公平性(DRF)算法,计算公式为: $$ \text{主导资源占比} = \max\left( \frac{\text{任务CPU需求}}{\text{集群总CPU}}, \frac{\text{任务内存需求}}{\text{集群总内存}} \right) $$ 资源分配优先满足主导资源占比更高的任务。


2. 关键配置参数

在 Flink 的flink-conf.yaml中配置:

# 启用 DominantResourceCalculator yarn.scheduler.capacity.resource-calculator: org.apache.hadoop.yarn.util.resource.DominantResourceCalculator # 指定容器 vCore 数量 yarn.containers.vcores: 4 # 设为实际需要的核心数

3. 提交任务时的资源配置

在提交 Flink 作业时指定资源需求(以命令行示例):

./bin/flink run \ -m yarn-cluster \ -ys 2 \ # 每个 TaskManager 的 Slot 数 -yjm 2048 \ # JobManager 内存 (MB) -ytm 4096 \ # TaskManager 内存 (MB) -yD yarn.containers.vcores=4 \ # 显式覆盖配置 ./examples/streaming/WordCount.jar

4. YARN 侧的配置验证

在 YARN 的capacity-scheduler.xml中确保:

<property> <name>yarn.scheduler.capacity.resource-calculator</name> <value>org.apache.hadoop.yarn.util.resource.DominantResourceCalculator</value> </property>

5. 资源分配逻辑

  • Flink 根据yarn.containers.vcores向 YARN 申请容器。
  • YARN 使用 DRF 策略比较各任务的资源占比: $$ \text{CPU占比} = \frac{\text{vCore请求}}{\text{集群总vCore}}, \quad \text{内存占比} = \frac{\text{内存请求}}{\text{集群总内存}} $$
  • 选择 $\max(\text{CPU占比}, \text{内存占比})$ 最大的任务优先分配。

6. 性能调优建议

  • vCore 与物理核心:若物理核心超线程(如 1:2),建议设置: $$ \text{yarn.containers.vcores} = 2 \times \text{物理核心数} $$
  • 避免过度分配:单个容器的 vCore 不应超过 YARN 节点总 vCore 的 70%,即满足: $$ \text{单容器vCore} \leq 0.7 \times \text{yarn.nodemanager.resource.cpu-vcores} $$

通过上述配置,Flink 作业将基于 DRF 策略在 YARN 集群中高效分配 vCore 资源。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 3:08:25

跨语言代码翻译终极实战指南:避开这3个陷阱效率提升200%

作为开发者&#xff0c;你是否在维护多语言项目时被代码翻译搞得焦头烂额&#xff1f;代码翻译已成为现代软件开发不可或缺的技能&#xff0c;特别是在处理跨国项目或技术栈迁移时。基于HumanEval-X基准的深度实践&#xff0c;本文将带你从零开始掌握高效的跨语言代码转换技巧&…

作者头像 李华
网站建设 2026/5/1 7:24:03

告别DLL错误:批量部署Visual C++ 2015运行库方案

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个企业级部署工具&#xff0c;支持通过组策略或脚本批量安装Visual C 2015运行库到域内所有计算机。工具应提供集中管理界面&#xff0c;显示各客户端安装状态和版本信息。支…

作者头像 李华
网站建设 2026/4/19 7:35:06

Vue Konva实战指南:快速构建响应式画布应用

Vue Konva实战指南&#xff1a;快速构建响应式画布应用 【免费下载链接】vue-konva Vue & Canvas - JavaScript library for drawing complex canvas graphics using Vue. 项目地址: https://gitcode.com/gh_mirrors/vu/vue-konva Vue Konva是一个专为Vue.js设计的强…

作者头像 李华
网站建设 2026/5/1 7:21:51

比手动编写快10倍:SQL批量更新技巧大全

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 构建一个SQL更新效率对比工具&#xff0c;左侧展示传统手动编写的多步更新操作&#xff0c;右侧展示优化后的单条高效SQL语句。例如对比循环更新每条记录与批量UPDATE...CASE WHEN.…

作者头像 李华
网站建设 2026/5/1 6:28:15

Qwen3-Coder-30B-A3B-Instruct完整指南:快速部署Python代码生成专家

Qwen3-Coder-30B-A3B-Instruct完整指南&#xff1a;快速部署Python代码生成专家 【免费下载链接】Qwen3-Coder-30B-A3B-Instruct 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen3-Coder-30B-A3B-Instruct 在当今AI驱动的开发环境中&#xff0c;Qwen3-Coder-30…

作者头像 李华
网站建设 2026/4/30 23:45:05

毕业设计 stm32 wifi远程可视化与农业灌溉系统(源码+硬件+论文)

文章目录 0 前言1 主要功能2 硬件设计(原理图)3 核心软件设计4 实现效果5 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要求&#xff0c;这两年不断有学弟学妹告诉…

作者头像 李华