这篇文章的内容主要围绕如何进行Fair Scheduler和Capacity Scheduler比较进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!
下面提供有关选择Capacity Scheduler的好处和性能改进的信息,以及Fair Scheduler和Capacity Scheduler之间的功能比较。
为什么需要Scheduler?
Cloudera Data Platform(CDP)在YARN群集中仅支持Capacity Scheduler。
在发布CDP之前,Cloudera客户根据所使用的产品(分别是CDH或HDP)使用了两个调度程序(Fair Scheduler和Capacity Scheduler)之一。
CDP中收敛到一个调度程序是一个艰难的选择,但最终植根于我们为客户降低复杂性的意图,同时帮助我们集中精力进行未来的投资。多年来,这两个调度程序都有很大的发展,以至于Fair Scheduler从Capacity Scheduler借用了几乎所有功能,反之亦然。鉴于此,我们最终决定将您的所有YARN群集的工作负载都放在Capacity Scheduler的上面。
当前使用Fair Scheduler的群集在迁移到CDP时必须迁移到Capacity Scheduler。Cloudera提供了有关此类迁移的工具,文档和相关帮助。
以下是使用Capacity Scheduler时的一些好处:
与Ranger集成
节点分区/标签
改进了在云原生环境中的Scheduler,例如更好的垃圾箱打包,自动扩展支持等。
计划吞吐量的提高
全局调度框架
一次查找多个节点
相似性/反相似性:仅在运行应用程序Y的那些节点上运行应用程序X,反之亦然。不要在同一节点上运行应用程序X和应用程序Y。
调度程序性能改进
提供有关全局调度功能及其测试结果的信息。
在更改全局调度之前,YARN调度程序处于整体锁定状态,表现不佳。全局调度在很大程度上改进了YARN调度程序的内部锁定结构和线程模型。调度程序现在可以解耦放置决策并更改内部数据结构。这还可以使您一次查找多个节点,云上的自动缩放和bin-packing策略会使用这些节点。有关更多信息,请参见 设计和实现说明。
在模拟的基础上,使用全局调度功能的测试结果显示:
这是一个具有20000个节点和47000个正在运行的应用程序的模拟环境。有关这些测试的更多信息,请参见性能报告。
微软发布了Hydra:用于数据中心规模分析的联合资源管理器(Carlo等)报告,重点介绍了可伸缩性(将YARN部署到超过25万个节点,其中包括五个大型联合集群,每个集群有5万个节点)和通过使用Capacity Scheduler调度获得更高的性能(每个群集的调度程序每秒可以分配超过40k的容器)。这是世界上最大的YARN部署。
我们还看到了社区中其他公司的性能数据,这些数据与我们使用模拟器测试的结果一致(对于具有数千个节点的集群,每秒数千个容器分配)。
免责声明:上面讨论的性能数字与群集的大小,群集上运行的工作负载,队列结构,运行状况(例如节点管理器,磁盘和网络),容器搅动等有关。这通常需要对调度程序和其他群集参数进行微调,以达到理想的性能。这不是仅通过使用CDP就可以实现的保证数量。
功能比较
随着时间的推移,两个调度程序的功能都变得相似。表中列出了当前功能列表以及两个调度程序之间的差异。
功能列表 | Capacity Scheduler | Fair Scheduler | 评论 | |
队列 | 分层队列 | 是 | 是 | |
弹性队列容量来实现更好的资源共享 | 是 | 是 | ||
队列中基于百分比的资源配置 | 是 | 是 | 百分比和绝对资源设置不能同时使用。 | |
自动队列创建 | 是 | 是 | ||
用户映射(用户/组到队列的映射) | 是 | 是 | ||
CLI / REST API支持来管理队列 | 是 | 是 | ||
在队列之间移动应用程序 | 是 | 是 | ||
创建/删除/修改动态队列 | 是 | 是 | ||
队列中的预订支持 | 是 | 是 | ||
授权 | 授权控制(队列中用于提交/管理/管理的ACL) | 是 | 是 | |
第三方ACL控制(Ranger) | 是 | 是 | ||
应用位置 | 节点标签支持 | 是 | 否 | |
Hive放置集成 | 是 | 是 | ||
节点属性支持 | 是 | 否 | ||
放置约束支持 | 是 | 否 | 受支持的约束在当前实施中受到限制。 | |
节点位置 | 是 | 是 | ||
位置延迟控制 | 是 | 是 | ||
用户限制配额管理 | 是 | 是 | ||
AM资源配额管理 | 是 | 是 | ||
队列优先级 | 是 | 否 | 通过队列权重间接管理。 | |
每个容器单位的最大和最小分配限制 | 是 | 是 | ||
调度 | 异步调度支持 | 是 | 是 | 调度程序之间的实现有所不同,因此不应视为等效。 |
多种资源类型支持(CPU,内存,GPU等) | 是 | 是 | ||
队列排序策略(公平,FIFO等) | 是 | 是 | ||
每个心跳有多个容器分配 | 是 | 是 | ||
抢占 | 队列间抢占支持 | 是 | 是 | |
队列内抢占支持 | 是 | 是 | ||
基于预留的抢占 | 是 | 是 | ||
基于队列优先级的抢占 | 是 | 否 | 在做出抢占式决策时,将考虑队列权重。 | |
应用 支持 | 一流的应用概念 | 是 | 是 | |
应用优先级 | 是 | 是 | ||
应用程序超时 | 是 | 是 | ||
跨队列移动应用程序 | 是 | 是 | ||
高可用性有状态应用程序恢复 | 是 | 是 |
功能列表 | Capacity Scheduler | Fair Scheduler | 评论 | |
队列 | 队列中的绝对资源配置 | 是 | 是 | 百分比和绝对资源设置不能同时使用。 |
应用位置 | 最大应用数量 | 否 | 是 | 通过AM资源配额间接管理。 |
调度 | 基于应用程序大小的公平性 | 否 | 是 |
从CDP私有云Base 7.1版本开始,Cloudera提供fs2cs转换实用程序,它是一个CLI应用程序,并且是YARN CLI命令的一部分。该实用程序有助于从Fair Scheduler迁移到Capacity Scheduler。
感谢你的阅读,相信你对“如何进行Fair Scheduler和Capacity Scheduler比较”这一问题有一定的了解,快去动手实践吧,如果想了解更多相关知识点,可以关注亿速云网站!小编会继续为大家带来更好的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。