我们可以在同一个hadoop集群中同时使用Fair scheduler和Capacity Scheduler吗?哪个调度程序是好的和有效的。谁能帮我 ?我们可以在同一个hadoop集群中同时使用Fair scheduler和Capacity Scheduler吗?
回答
我不认为两者都可以同时使用。这也没有意义。你为什么要在同一个集群中使用两种类型的调度?由于具体的使用情况,两个调度算法都出现了。
公平调度是一种为作业分配资源的方法,这样所有作业平均得到的资源的平均份额随时间变化。当 有一个作业正在运行时,该作业将使用整个群集。当提交其他作业 时,空闲的任务插槽将分配给 新作业,以便每个作业获得大致相同的CPU时间量。 与构成作业队列的默认Hadoop计划程序不同,此 可让短时间作业在合理的时间内完成,而不会损坏长时间的 作业。在用户数 之间共享群集也是一种合理的方式。最后,公平分享也可以与工作优先级一起工作 - 优先级被用作权重来确定每个工作应得到的计算时间总和的比例。
公平调度程序产生Facebook的需要在多个用户之间共享其数据仓库。 Facebook开始使用Hadoop来管理每天累积的大量内容和日志数据。最初,每天需要运行数据才能创建报告。然而,随着Facebook内的其他团体开始使用Hadoop,生产工作的数量也在增加。此外,分析师开始使用数据仓库通过Hive(面向Hadoop的Facebook类SQL查询语言)进行临时查询,并且在开发人员尝试使用该数据集时提交了更多的大批量作业。 Facebook的数据团队考虑为生产任务构建一个单独的群集,但看到这将非常昂贵,因为数据将不得不被复制,并且两个群集的利用率都很低。相反,Facebook构建了Fair Scheduler,它在多个作业之间平均分配资源,并且还支持生产作业的容量保证。公平调度器是基于三个概念:
- 作业被放置到基于可配置的属性命名为“池” 如用户名,UNIX组或明确标注一份工作,通过一个特定的池是 它的jobconf。
- 每个池都可以有一个“保证容量”,通过 指定一个配置文件,该配置文件给出了最少数量的映射插槽并减少了要分配给池的插槽。当 池中存在挂起的作业时,它至少会获得多个插槽,但如果它没有作业,则其他池可以使用 插槽。
- 未达到池最低限度的剩余容量是 在使用公平共享的作业之间分配。公平分享确保随着时间的推移,每个作业都会获得大致相同的资源量。 这意味着较短的工作会很快完成,而较长的工作 保证不会饿死。
调度还包括用于简化管理的多项功能,包括重新加载配置文件在运行时更改池设置,而无需重新启动群集上运行的每个用户和每个池的工作范围的能力,并使用优先权衡量不同工作的份额。
的CapacityScheduler被设计为允许共享一大簇 同时也让每一个组织的最小容量保证。中心思想是Hadoop Map-Reduce集群中的可用资源在多个组织之间进行分区,这些组织根据计算需要共同为集群提供资金。还有一个额外的好处 ,组织可以访问任何多余的容量不被 其他人使用。这为组织提供了具有弹性的 具有成本效益的方式。
Yahoo的容量调度程序提供了与公平调度程序类似的功能,但采用了一种有点不同的理念。在Capacity Scheduler中,您可以定义一些命名队列。每个队列都有一个可配置数量的映射和减少插槽。调度程序在包含作业时向每个队列提供其容量,并在队列之间共享任何未使用的容量。但是,在每个队列中,使用具有优先级的FIFO调度,除了一个方面 - 您可以限制每个用户正在运行的任务的百分比,以便用户平等地共享一个群集。换句话说,容量调度器试图为每个用户和每个组织模拟一个单独的FIFO /优先级集群,而不是在所有作业之间进行公平分享。容量调度程序还支持在每个队列上配置等待时间,在此之后,如果其他队列的任务低于其公平份额,则允许其抢占其他队列的任务。
因此,它会归结为什么是你的需要和设置,以决定你应该与哪个调度程序。
Apache hadoop现在支持这两种类型的调度。自80年代末至少 -
- 1. 使用Capacity Scheduler在Hadoop集群中设置队列
- 2. hadoop fair scheduler打开文件错误?
- 3. Capacity Scheduler队列问题
- 4. 如何在Spark中启用Fair Scheduler?
- 5. 如何在使用Fair Scheduler时确保某些hadoop作业不会在相同的datanode中运行?
- 6. Hadoop Fair Scheduler未将任务分配给某些节点
- 7. 我可以使用Quartz Scheduler启动我的应用程序吗?
- 8. Quartz Scheduler(cron)可以在相同的执行时间安排多个作业吗?
- 9. 我可以使用Minimesos使用Scheduler HTTP API吗?
- 10. 我可以使用单个虚拟机创建Hadoop群集吗?
- 11. oozie实例可以同时在多个hadoop集群上运行作业吗?
- 12. 我们可以在同一页面中使用AJAXToolKit和Jquery吗?
- 13. 我们可以在一个函数中同时使用ajax和jquery脚本吗?
- 14. 如何使用ftrace跟踪linux fair(scheduler)进程
- 15. 如何使用Spark Streaming配置Fair Scheduler池?
- 16. YARN“Fair Scheduler”如何与spark-submit配置参数配合使用
- 17. 我可以在一个程序集中同时使用C#和C++/CLI吗?
- 18. 如何在集群中运行一次Akka Scheduler?
- 19. 我们可以使用不同Linux版本的节点创建Kubernetes群集吗?
- 20. 是android-priority-job-queue和job scheduler两个不同的东西吗?
- 21. Quartz Scheduler和RabbitMQ
- 22. 我们可以将Apache Ignite集群复制到另一个Ignite集群吗?
- 23. 我可以用Azure Scheduler替换SQL作业吗?
- 24. 我们可以同时使用Semantic UI和Foundation吗?
- 25. 我们可以同时使用Xcode 3.2.5和Xcode 4吗?
- 26. 我们可以同时使用多个网卡吗?
- 27. Spring 3.2和Quartz Scheduler
- 28. 我可以在一个查询中使用不同和“in”吗?
- 29. 我可以在同一个会话中使用AVCaptureVideoDataOutput和AVCaptureMovieFileOutput吗?
- 30. 我可以在同一个画布中使用fabric.js和three.js吗?
Fairshare调度已在HPC中使用Facebook的创建没过多久:更详细的信息,可以在下面的链接中找到。由于共享树存在,我认为会产生混淆(这个问题),它允许HPC中的fairshare系统提供Hadoop的容量调度程序的功能。 –
我相信他指的是Hadoop项目中的公平份额调度。当然,这个概念可能在马克·祖克伯格出生之前就已经出现了。 – petersaints