前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spark作业调度

Spark作业调度

作者头像
岑玉海
发布2018-02-28 17:21:05
9150
发布2018-02-28 17:21:05
举报
文章被收录于专栏:岑玉海岑玉海

  Spark在standalone模式下,默认是使用FIFO的模式,我们可以使用spark.cores.max 来设置它的最大核心数,使用spark.executor.memory 来设置它的内存。

     在YARN模式下,使用--num-workers设置worker的数量,使用--worker-memory设置work的内存,使用--worker-cores设置worker的核心数。

     下面介绍一下怎么设置Spark的调度为Fair模式。

  在实例化SparkContext之前,设置spark.scheduler.mode。

代码语言:javascript
复制
System.setProperty("spark.scheduler.mode", "FAIR")

  公平算法支持把作业提交到调度池里面,然后给每个调度池设置优先级来运行,下面是怎么在程序里面指定调度池。

代码语言:javascript
复制
context.setLocalProperty("spark.scheduler.pool", "pool1")

  上面是设置调度池为pool1,当不需要的时候,可以设置为null。

代码语言:javascript
复制
context.setLocalProperty("spark.scheduler.pool", null)

  默认每个调度池在集群里面是平等共享集群资源的,但是在调度池里面,作业的执行是FIFO的,如果给每个用户设置一个调度池,这样就不会出现迟提交的比先提交的先运行。

  下面是设置pool的样本,详情可以具体参考conf/fairscheduler.xml.template。

代码语言:javascript
复制
<?xml version="1.0"?>
<allocations>
  <pool name="production">
    <schedulingMode>FAIR</schedulingMode>
    <weight>1</weight>
    <minShare>2</minShare>
  </pool>
  <pool name="test">
    <schedulingMode>FIFO</schedulingMode>
    <weight>2</weight>
    <minShare>3</minShare>
  </pool>
</allocations>

schedulingMode:FAIR或者FIFO。

weight: 权重,默认是1,设置为2的话,就会比其他调度池获得2x多的资源,如果设置为-1000,该调度池一有任务就会马上运行。

minShare: 最小共享核心数,默认是0,在权重相同的情况下,minShare大的,可以获得更多的资源。

  我们可以通过spark.scheduler.allocation.file参数来设置这个文件的位置。

代码语言:javascript
复制
System.setProperty("spark.scheduler.allocation.file", "/path/to/file")
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-02-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档