首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache-Spark内部作业调度

Apache-Spark内部作业调度
EN

Stack Overflow用户
提问于 2015-04-25 05:56:49
回答 1查看 902关注 0票数 1

我偶然发现了Spark中的一个特性,它允许您在一个spark context中调度不同的任务。

我想在一个程序中实现这个特性,在这个程序中,我将输入的RDD(from a text source)转换成一个键值RDD [K,V],然后生成一个复合键值RDD [(K1,K2),V]和一个包含一些特定值的过滤RDD

进一步的流水线涉及在RDDsjoin操作上从MLlib调用一些统计方法,然后将结果外部化到磁盘。

我正在尝试理解spark'的内部公平调度程序将如何处理这些操作。我试着阅读作业调度文档,但对poolsuserstasks的概念感到更困惑。

pools到底是什么,它们是可以组合在一起的特定'tasks',还是汇集在一起的linux用户

context中的users是什么。他们指的是threads吗?或者它类似于SQL上下文查询?

我猜它与如何在spark context中调度任务有关。但阅读文档会让人觉得我们在处理具有不同客户端和用户组的多个应用程序。

有人能澄清这一点吗?

EN

回答 1

Stack Overflow用户

发布于 2015-04-25 18:07:20

您在第2段中描述的所有流水线过程:

代码语言:javascript
复制
map -> map -> map -> filter

将在单个阶段中处理,就像MapReduce中的map()一样(如果您熟悉的话)。这是因为在创建新的记录之前,不需要对数据进行重新分区或混洗,对记录之间的相关性没有任何要求,spark只会将尽可能多的转换链接到同一阶段,因为它非常轻量级。关于阶段分离的更多信息可以在它的论文中找到:Resilient Distributed Datasets第5.1节作业调度。

当阶段被执行时,它将是一个任务集(在不同线程中运行的相同任务),并在spark的视角下同时进行调度。

而公平调度器即将调度无关的任务集,并不适合这里。

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

https://stackoverflow.com/questions/29858199

复制
相关文章

相似问题

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