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

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

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

  1. conf.set("spark.scheduler.mode", "FAIR")
  2. conf.set("spark.scheduler.allocation.file", sys.env("SPARK_HOME") + "/conf/fairscheduler.xml")
  3. val job1 = Future {
  4. val job = new Job1()
  5. job.run()
  6. }
  7. val job2 =Future {
  8. val job = new Job2()
  9. job.run()
  10. }
  11. class Job1{
  12. def run()
  13. sc.setLocalProperty("spark.scheduler.pool", "mypool1")
  14. }
  15. }
  16. class Job2{
  17. def run()
  18. sc.setLocalProperty("spark.scheduler.pool", "mypool2")
  19. }
  20. }
  21. <pool name="mypool1">
  22. <schedulingMode>FAIR</schedulingMode>
  23. <weight>1</weight>
  24. <minShare>2</minShare>
  25. </pool>
  26. <pool name="mypool2">
  27. <schedulingMode>FAIR</schedulingMode>
  28. <weight>1</weight>
  29. <minShare>2</minShare>
  30. </pool>

job1和job2将从启动程序类触发。即使在设置了这些属性之后,我的工作也在fifo中处理。fair是否适用于spark独立集群模式?是否有更详细的描述页面?在工作安排上,我似乎找不到太多关于公平和独立的东西。我关注这个问题。我在这里遗漏了什么吗?

oug3syen

oug3syen1#

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

相关问题