首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache :限制TaskManager中CPU的数量

Apache :限制TaskManager中CPU的数量
EN

Stack Overflow用户
提问于 2017-06-23 18:28:44
回答 2查看 3.3K关注 0票数 3

第一个,我是运行在独立模式

我一直试图找到任何配置,但我还没有找到任何有关这方面的东西。

在Spark中,有一些配置允许您限制在每个从服务器中使用的CPU数量:

  • SPARK_WORKER_CORES (工人配置)
  • spark.executor.cores (集群配置)

但是在Flink中,您只需要设置要使用的最大内存和任务槽的数量(这只是将内存分开),就像在正式文件中所说的

  • taskmanager.numberOfTaskSlots:单个TaskManager可以运行的并行操作符或用户函数实例的数量(默认值: 1)。如果此值大于1,则单个TaskManager接受一个函数或操作符的多个实例。这样,TaskManager可以利用多个CPU核,但同时,可用内存在不同的操作符或函数实例之间进行分配。这个值通常与TaskManager机器所拥有的物理CPU核的数量成正比(例如,等于内核的数量,或内核数量的一半)。

关于我的问题,在这里更专注

每个任务槽表示TaskManager资源的固定子集。例如,有三个插槽的TaskManager将其托管内存的1/3专用于每个插槽。对资源进行时隙意味着子任务不会与来自其他作业的子任务竞争托管内存,而是拥有一定数量的保留托管内存。注意,这里没有CPU隔离;当前槽只分隔任务的托管内存。

谢谢!!

EN

回答 2

Stack Overflow用户

发布于 2018-04-05 23:50:00

我在找同样的问题。据我理解,没有任何配置可以设置每个时隙的CPU数量。设置插槽的数量将在插槽之间划分内存,减少每个时隙的内存。我的最佳猜测是将槽数设置为1,并使CPU可用于在容器中运行的任务管理器进程(可能是停靠器)。可以通过增加任务管理器的数量来实现同样的并行性。

票数 0
EN

Stack Overflow用户

发布于 2019-03-20 18:28:16

认为这是在flink配置文档中:https://ci.apache.org/projects/flink/flink-docs-stable/ops/config.html#yarn

yarn.containers.vcores -1 每个纱线容器的虚拟芯数(Vcore)。默认情况下,vcore的数量设置为每个TaskManager的插槽数(如果设置为1 ),否则设置为1。为了使用此参数,群集必须启用CPU调度。您可以通过设置org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler.来做到这一点。

大卫在上面是正确的--但推理是因为这种环境,我认为这更能回答OPs的问题。因此,如果保留默认值,则调整任务插槽的数量将调整核心的数量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44727845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档