首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Spark-Jobserver配置公平调度器?

如何使用Spark-Jobserver配置公平调度器?
EN

Stack Overflow用户
提问于 2016-08-25 04:00:37
回答 1查看 1.4K关注 0票数 2

当我同时发布jobserver请求时,它们似乎总是以FIFO模式进行处理。尽管我尽了最大的努力来启用公平调度程序,但这还是存在的。如何确保始终并行处理我的请求?

背景:在我的集群上,有一个SparkContext,用户可以向它发送请求来处理数据。每个请求可以作用于不同的数据块,但操作总是相同的。一分钟的小作业不应该等待一小时的大作业完成。

直觉上,我预计会发生以下情况(参见下面的配置):上下文在公平的池中运行。每次用户发送处理某些数据的请求时,Spark都应该拆分公平池,并提供一部分集群资源来处理新的请求。然后,每个请求都以FIFO模式与任何其他并发请求并行运行。

下面是我同时运行作业时实际发生的情况:界面显示"1 Fair Scheduler Pools“,并列出一个名为”default“的活动(FIFO)池。似乎所有的东西都在相同的FIFO池中执行,而FIFO池本身在公平池中单独运行。我可以在Spark的Environment页面上看到我的公平池详细信息被正确加载,但我的请求都是以FIFO方式处理的。

如何配置我的环境/应用程序,以使每个请求实际上与其他请求并行运行?我是否需要为每个请求创建单独的上下文?我是否可以在公平池中创建任意数量的相同FIFO池,然后在每次发出请求时以某种方式选择一个空池?考虑到J观察者的目标,似乎这一切都应该是自动的,并且设置起来并不是很复杂。下面是我的配置的一些细节,以防我犯了一个简单的错误。

来自local.conf:

代码语言:javascript
复制
contexts {
 mycontext {
   spark.scheduler.mode = FAIR
   spark.scheduler.allocation file = /home/spark/job-server-1.6.0/scheduler.xml
   spark.scheduler.pool = fair_pool
 }
}

来自scheduler.xml:

代码语言:javascript
复制
<?xml version="1.0"?>
<allocations>
  <pool name="fair_pool">
    <schedulingMode>FAIR</schedulingMode>
    <weight>1</weight>
  </pool>
</allocations>

感谢您的任何想法或指点。对于术语的混淆,我深表歉意-- "job“这个词在jobserver中有两层含义。

EN

回答 1

Stack Overflow用户

发布于 2016-08-25 10:52:11

我查看了我的配置,发现

spark.scheduler.allocation文件应为spark.scheduler.allocation.file

所有的值都是这样引用的

代码语言:javascript
复制
contexts {
  mycontext {
    spark.scheduler.mode = "FAIR"
    spark.scheduler.allocation.file = "/home/spark/job-server-1.6.0/scheduler.xml"
    spark.scheduler.pool = "fair_pool"
  }
}

还要确保创建了mycontext,并且在提交作业时传递了mycontext。

您还可以使用Spark Master UI验证mycontext是否使用了公平调度程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39132097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档