dar*_*kjh 4 amazon-emr hadoop-yarn apache-spark
我们在纱线集群上运行火花作业,发现即使没有足够的资源,火花作业也会启动.
举一个极端的例子,一个火花作业要求1000个执行器(4个核心和20GB内存).在整个集群中,我们只有30个节点r3.xlarge
(4核和32GB RAM).这项工作实际上可以启动和运行只有30个执行者.我们尝试将动态分配设置为false,我们尝试了容量调度程序和纱线的公平调度程序.一样的.
如果没有足够的资源,我们如何才能开始工作?这有什么火花边或纱线边设置吗?
我似乎刚刚回答了一个非常相似的问题.
考虑一个用例,您不希望等待所有可用资源,并在数字足以启动任务时立即启动.
这就是为什么Spark on YARN有一个额外的检查(aka minRegisteredRatio
),它是应用程序开始执行任务之前所请求的最少80%的内核.
由于您希望在Spark应用程序启动之前使所有核心可用,因此请使用spark.scheduler.minRegisteredResourcesRatio
Spark属性来控制比率.
引用官方Spark文档(突出我的):
spark.scheduler.minRegisteredResourcesRatio
YARN模式为0.8
注册资源(注册资源/预期资源总量)的最小比率(资源是纱线模式下的执行者,独立模式下的CPU核心和Mesos粗粒度模式['spark.cores.max'值是Mesos粗略的总预期资源 - 粒度模式])在调度开始之前等待.指定为0.0和1.0之间的双精度.无论是否达到最小资源比率,在调度开始之前等待的最长时间由config控制
spark.scheduler.maxRegisteredResourcesWaitingTime
.
归档时间: |
|
查看次数: |
1593 次 |
最近记录: |