我有 2 个节点集群和spark 独立集群管理器。我使用 Scala 多线程触发了多个作业sc
。我发现由于FIFO的性质,我的作业被一个接一个地安排,所以我尝试使用FAIR调度
conf.set("spark.scheduler.mode", "FAIR")
conf.set("spark.scheduler.allocation.file", sys.env("SPARK_HOME") + "/conf/fairscheduler.xml")
val job1 = Future {
val job = new Job1()
job.run()
}
val job2 =Future {
val job = new Job2()
job.run()
}
class Job1{
def run()
sc.setLocalProperty("spark.scheduler.pool", "mypool1")
}
}
class Job2{
def run()
sc.setLocalProperty("spark.scheduler.pool", "mypool2")
}
}
<pool name="mypool1">
<schedulingMode>FAIR</schedulingMode>
<weight>1</weight>
<minShare>2</minShare>
</pool>
<pool name="mypool2">
<schedulingMode>FAIR</schedulingMode>
<weight>1</weight>
<minShare>2</minShare>
</pool>
Job1 和 Job2 将从启动器类触发。即使在设置了这些属性之后,我的工作也是在FIFO中处理的。FAIR是否可用于 Spark Standalone 集群模式?是否有更详细描述它的页面?我似乎在 Job Scheduling 中找不到太多关于 FAIR 和 Standalone 的信息。我正在关注这个SOF 问题。我在这里遗漏了什么吗?