hadoop之YARN

在YARN中,资源调度器(Scheduler),是ResourceManager中的重要组件,主要负责对整个集群(CPU,内存)的资源进行分配和调度,分配以资源Container的形式分发到各个应用程序中(如MapReduce作业),
应用程序与资源所在节点的NodeManager协作利用Container完成具体的任务(如Reduce Task)。
	
框架默认提供了三种Scheduler:
1)FIFO Scheduler:
先进先出即先来后到。
2)Capacity Scheduler:
以Capacity为中心,把资源划分到若干个队列中,各个队列内根据自己的逻辑分配资源。例如队列A可以调度的资源可以占80%,队列B占有剩下的20%,各队列接受相应的作业请求。
3)Fair Scheduler:
秉承公平性原则,尽可能让各个作业得到的资源平均。作业2提交之后,原本Job1占有的资源拨出一半给作业2。

采用Capacity调度的集群,资源被划分到一系列的Queue中,每个队列管理整个集群资源的一部分。队列内部可以再嵌套,形成层级结构。队列内资源采用FIFO的方式。
通常情况下,作业不能使用超过队列容量的资源,但是如果有空闲的资源,则调度器会为作业分配资源,即使这会导致队列超出容量限制。该特性叫队列弹性。
	
为了避免占用过多其他队列的资源,可配置一个最大容量,队列只能使用该容量以内的资源,但是会牺牲一定的弹性。在这个层次结构中,root队列下定义了prod和dev两个队列,假设占有集群资源容量的比例分别为40%和60%。
dev下又分为各占50%容量的eng和science队里。队列划分好之后,应用程序也需要配置使用哪一个队列中的资源。
例如,对于MapReduce作业,mapreduce.job.queuename属性配置作业所使用的队列。如果没有指定队列,作业被放到一个叫default的队列中。

fair scheduler试图保证运行中的应用程序都能分配到平均的资源,这里的平均是通过资源的数量来定义的,例如内存大小。假设有两个用户A和B,分别持有队列queue A和B。
在一开始的时候,A启动了job1,此时因为B没有资源需要,因此job1霸占了所有资源。一段时间后B启动了job2,一段时间后(等待job1释放资源),job1和job2各占一半资源。如果用户B接着启动job3,则job2和job3将共享队列B,也就是各占集群总资源的25%。当job2结束之后,job3占据整个队列B(50%)。
因此我们得出一个结论,公平性是指用户之间的公平性,而不是应用之间的公平性。

默认使用的是Capacity Scheduler。

优先权:当一个集群处于繁忙状态时,如果我们提交一个作业到其中一个空的队列,此时需要等待其他作业释放资源才能开始运行。为了使得等待释放的时间可以控制在预测范围内,Fair Scheduler支持优先权。

优先权运行Scheduler杀死占用(按公平原则划分)别的队列的Container,腾出空间被占用队列的应用。优先权可能会降低集群的效率,因为被杀死的Container都需要重新执行。
杀死之前的等待时间通过allocaion文件中的queue元素内的fairSharePreemptionTimeut元素配置,而fairSharePreemptionThreshold和 defaultFairSharePreemptionThreshold则用于设置等待时间内,
原本属于队列的资源可用比例,例如设为0.5表示当等待时间到时,如果原本属性该队列(按照公平原则)的资源可用比例还没有达到一半,则会启动杀死其他应用的Container。

延时调度,当应用程序请求在某个特定的节点上运行时,如果该节点刚好处于忙碌状态无法分配给应用,一种选择方式是就近选择同一机架中的其他节点。但是在实际中发现,稍微等一小段时间,
很有可能就能够分配到指定的节点,进而提高集群效率。这个特性叫延迟调度。

默认情况下,集群中的NodeManager每一秒中都想RM发送心跳,心跳张包含节点当前正在运行的Container以及可用于新Container的资源。
因此每次心跳都是一个调度机会。当启用延迟调度时,对于有节点位置要求的资源请求,调度器不会简单地使用第一次调度机会(牺牲数据locality),而是会尝试等待直到最大次数的调度机会,一旦发现符合要求的调度机会,及分配给应用。
如果直到最大次数还是没有合适的节点资源,则放宽数据locality要求,退而求其次采用同一机架。
  • 20
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成长是自己的事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值