如何配置 Yarn 以使用所有 vcore?

Posted

技术标签:

【中文标题】如何配置 Yarn 以使用所有 vcore?【英文标题】:How to configure Yarn to use all vcores? 【发布时间】:2017-02-09 21:17:17 【问题描述】:

我们正在使用yarn作为集群管理器运行火花流作业,我为每个节点分配了7个核心......通过yarn-site.xml如下图所示

当作业运行时 ..它只使用 2 个 vcores5 个 vcores 单独放置,作业速度很慢,有很多批次排队..

我们怎样才能让它使用所有 7 个 vcores ..这是可用的,这是运行时的用法,以便加快我们的工作

如果社区中的任何专家能提供帮助,我们将不胜感激,因为我们是 Yarn & Spark 的新手

【问题讨论】:

能否给我们提供给定的参数,例如执行器核心、执行器内存、执行器实例。我认为这个链接可以帮助你。 spark.apache.org/docs/1.6.2/running-on-yarn.html 【参考方案1】:

我为这个问题搜索了很多答案。最后,它在更改纱线配置文件后工作:capacity-scheduler.xml

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

别忘了重启你的纱线

【讨论】:

需要进行测试,在某些情况下需要使用默认配置,详情请看这里,hortonworks.com/blog/…我还在学习,不知道哪个更好。【参考方案2】:

在 spark 级别,您可以使用参数spark.yarn.am.cores 控制纱线应用程序主控的核心。 对于火花执行器,您需要将--executor-cores 传递给spark-submit。 但是,从 spark 中,您无法控制什么(vcores/memory)纱线选择分配给它产生的容器,这是正确的,因为您在纱线上运行火花。 为了控制这一点,您需要更改纱线 vcore 参数,例如 yarn.nodemanager.resource.cpu-vcoresyarn.scheduler.minimum-allocation-vcores。更多你可以在这里找到https://www.cloudera.com/documentation/enterprise/5-3-x/topics/cdh_ig_yarn_tuning.html#configuring_in_cm

【讨论】:

以上是关于如何配置 Yarn 以使用所有 vcore?的主要内容,如果未能解决你的问题,请参考以下文章

YARN 上的 Spark 使用的 vcore 太少

如何为 sqoop 作业设置 vcore

spark on yarn提交后vcore数不对

Flink 实战系列Flink on yarn 为什么 Allocated CPU VCores 显示不正确?

Flink 实战系列Flink on yarn 为什么 Allocated CPU VCores 显示不正确?

cdh之调整YARN(调优yarn 生产必做优化项)004