对于spark独立群集模式公平吗?

rekjcdws  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(408)

我有两个独立的群集管理器与Spark节点群集。我正在使用同一个触发多个作业 sc 我发现由于fifo的特性,我的作业被一个接一个地调度,所以我尝试使用公平调度

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独立集群模式?是否有更详细的描述页面?在工作安排上,我似乎找不到太多关于公平和独立的东西。我关注这个问题。我在这里遗漏了什么吗?

oug3syen

oug3syen1#

我不认为独立是个问题。您描述了只创建一个池,所以我认为您的问题是您至少还需要一个池,并将每个作业分配给不同的池。
公平调度是跨池完成的,同一池中的任何内容都将以fifo模式运行。
这是基于以下文档:https://spark.apache.org/docs/latest/job-scheduling.html#default-池的行为

相关问题