Spark1.4.1阅读官方文档系列——job schedule

一、综述

Job Schedule(简称JS)用来对不同的并行应用进行资源调度工作。

二、应用间的调度

当多个用户需要用到你的集群时,根据cluster manager会有不同的分配策略。

最简单的方法,同时也是各种cluster manager通用的策略,就是静态分配资源。也就是说,每个应用会被分配它能用到的最大量的资源,并且保持到这个应用的整个生命周期。

》standalone mode:默认情况下,被提交的应用按照先进先出的原则被分配资源,而且每个应用都会尝试去利用所有可被利用的节点。你可以限制每个应用的节点数量(设置spark.cores.max或者更改应用的默认设置spark.deploy.defaultCores),同时也可以控制每个应用的内存使用spark.executor.memory );

》mesos:略

》yarn:Spark YARN client的--num-executors 选项,用来控制分配在集群上的executor数量; --executor-memory 和 --executor-cores用·    来控制每个executor上的资源;

第二种方法是动态分享CPU核,适用于mesos。这种模式同样会为每个应用分配独立的固定的内存(spark.executor.memory)。当一个应用不在运行任务时,其他应用就会在这个应用的资源上运行任务。因此也存在一些不可预知的潜在风险,比如说该应用在拿回所需要的资源的时候需要一段时间。To use this mode, simply use a mesos:// URL without settingspark.mesos.coarse to true。

注意:现在还没有一种模式让应用之间可以进行内存共享。如果你想分享数据,我们建议运行一个服务应用,该应用可以通过询问相同的RDD来服务多个需求。在未来的版本中,类似Tachyon的内存存储系统会提供另一种途径来分享RDD。

2.1、动态资源分配

Spark1.2已经介绍了根据工作量来动态分配应用的集群资源的能力。这就意味着应用可以把不再用的资源还给集群,同时也可以以后需要的时候再要回来。这个特性在多个应用运行在spark集群上分享集群资源上更加有用。动态资源分配的粒度为executor。可以通过spark.dynamicAllocation.enabled来设置。

目前这种功能只适用于YARN。未来将会有版本把这种特性扩展到standalone 和mesos coarse-grained模式。 Note that although Spark on Mesos already has a similar notion of dynamic resource sharing in fine-grained mode, enabling dynamic allocation allows your Mesos application to take advantage of coarse-grained low-latency scheduling while sharing cluster resources efficiently.

2.1.1、配置和建立(不翻译)

All configurations used by this feature live under the spark.dynamicAllocation.*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值