Spark任务调度 2015-04-15 21:30

介绍

同一个Application的不同Job之间的调度策略默认是FIFO。除了FIFO外,也可以设置调度策略为FAIR(公平模式)。

配置参数:

spark.scheduler.mode      FIFO/FAIR

多Pool

Spark默认只有一个Pool,但允许创建多个Pool。创建多个Pool后,多个Pool之间的调度策略默认是FAIR. 池内的调度策略可以通过xml文件配置。

1
2
3
4
// Assuming sc is your SparkContext variable
sc.setLocalProperty("spark.scheduler.pool", "pool1")
// 使用完毕后,清除相关池
context.setLocalProperty("spark.scheduler.pool", null)
1
2
// 设置各池的调度模式文件路径
System.setProperty("spark.scheduler.allocation.file", "/path/to/file")

XML文件模板:conf/fairscheduler.xml.template

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?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>
Tags: #Spark    Post on Spark