如何配置 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 个 vcores 和 5 个 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-vcores
、yarn.scheduler.minimum-allocation-vcores
。更多你可以在这里找到https://www.cloudera.com/documentation/enterprise/5-3-x/topics/cdh_ig_yarn_tuning.html#configuring_in_cm
【讨论】:
以上是关于如何配置 Yarn 以使用所有 vcore?的主要内容,如果未能解决你的问题,请参考以下文章
Flink 实战系列Flink on yarn 为什么 Allocated CPU VCores 显示不正确?