如何确定 ambari 集群中的 yarn.scheduler.maximum-allocation-vcores 值

如何确定 ambari 集群中的 yarn.scheduler.maximum-allocation-vcores 值

我们有 ambari 集群(版本 2.6),其中有 3 个工作机器,每个工作机器有 16 个 CPU 核心(见下图),每台机器有 32G 内存

根据:

yarn.nodemanager.resource.cpu-vcores:在所有节点的 yarn-site.xml 中将其设置为适当的数字。这严格取决于集群中运行的工作负载类型,但一般建议管理员将其设置为等于机器上的物理核心数。

我们设定yarn.nodemanager.resource.cpu-vcores至 16

但什么是正确的价值 -yarn.scheduler.最大分配-vcores

yarn.scheduler.maximum-allocation-vcores:这是资源管理器上每个容器请求的最大分配,以虚拟 CPU 核心为单位。高于此值的请求将不会生效,并将被限制在此值内。

这是否意味着总核心的 80% 或总 CPU 核心的 50% 到 100% 之间?

答案1

本博客:https://qubole.zendesk.com/hc/en-us/articles/115002396546-Reference-Default-yarn-scheduler-maximum-allocation-vcores

...声明:

Qubole 中 yarn.scheduler.maximum-allocation-vcores 的默认值设置为 CPU 数量的两倍。这种超额认购假设 CPU 并非始终在运行线程,因此分配更多核心可实现最大 CPU 利用率。

如果您对此不满意,可以设置 yarn.scheduler.maximum-allocation-vcores = 80% * (总 CPU 核心数) * 2。在进行任何设置更改后,在负载下监控集群/节点 CPU 利用率一段时间。70%-80% 的利用率应该差不多。

相关内容