美文网首页
Yarn是个什么玩意

Yarn是个什么玩意

作者: 乌拉乌拉儿 | 来源:发表于2021-01-12 21:45 被阅读0次

    Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而mapreduce等运算程序则相当于运行于操作系统之上的应用程序。

    在hadoop1.0中有一些弊端,比如hdfs元数据信息保存的单节点故障,并且任务计算框架只能使用mapreduce,而且造成了任务管理器的压力过大,因此在hadoop2.0中加入了yarn资源统一管理的机制,不仅解决了元数据单节点故障问题(双namenode)而且实现了元数据的实时热备(共享机制JournalNode),在hdfs和mr之间加入了yarn,统一协调资源。

主要角色

    Resource Manager:资源管理器,负责整个集群的资源分配,只在NameNode上。RM包括两个组件,一个是Application Manager,用于管理集群中的所有用户作业;另一个是Scheduler。

    Node Manager:节点管理器,负责在单个节点上启动和监控Container,在所有节点上都有一个。向RM负责并保持心跳。

    Container:容器负责任务的具体执行,可以是一个进程,也可以是一个Linux cgroup,可以配置,每个容器都有资源限制(CPU,内存),一个Container代表一个节点上的一组资源。

    Application Master:对于向Yarn提交的应用,Application Master是这个应用的中枢,负责监控应用的信息。Application Master自身也在一个Container里,与Node Manager协同工作来执行/监控Container。Application Master会通过心跳与Resource Manager建立联系,申请资源;心跳应答中,Application Master会收到绑定了一组资源的Container租约。

    RM(Resource Manager)主要负责的是在不同应用之间调度资源,AM(Application Master)负责应用的进程状态信息的监控和容错等。

1.资源是怎么请求的?

步骤:

 >1. 客户端联系资源管理器,请求运行一个 application master 进程;

 >2. 资源管理器找到一个能够运行这个进程的容器;

 >3. application master 一旦运行起来,可能在所在容器简单的运行一个计算,把结果返回给客户端,或者向资源管理器请求更多的容器;

 >4. 请求更多的容器。

    Yarn 本身不会为应用的各部分(客户端、master 和进程)间提供通信手段,大多数重要的yarn应用使用某种形式的远程通信机制(hadoop 的RPC层)来向客户端传递状态更新和返回结果,这些通信机制专属于应用的。        

    Yarn 应用可以运行在任意时刻提出资源申请,例如,可以在最开始提出所有的请求,或者为了满足不断变化的应用需要,动态提出请求,spark属于第一种,在集群上申请固定的资源,map reduce属于第二种,不断变化请求资源。

2.生命周期模型

    1.一个用户作业对应一个应用,map reduce就是采用这种模型;

    2.作业的每个工作流或每个用户对话对应一个应用。这种方法要比第一种高效,因为容器可以在不同作业间重用,并且可能缓存中间数据,spark就是采用这种模型;

    3.多个用户共享一个长期运行的应用。这种应用通常作为一种协调者的角色在运行,像impala使用这种模型提供了一个代理应用,impala 守护进程通过该代理请求集群资源,避免了启动新application master 带来的开销,获得低延迟的查询响应。

3.与MR1对比是怎样的,有什么优点

组成对比如上图所示 ,那有什么优点呢?

  1. 可扩展性,MR1当节点达到4000,任务数达到40000时,会遇到可扩展性瓶颈,瓶颈源自jobtracker 必须同时管理作业和任务。yarn利用其资源管理器和 application master 分离的架构优点客服了这个局限性,可以扩展到上万个节点及10万个任务;

  2. 利用率,在MR1中,每个tasktracker 都配置若干个固定长度的slot,这些slot都是静态分配的,分为map slot 和reduce slot ,map slot只能运行map 任务,reduce slot只能运行 reduce 任务;yarn中,一个节点管理器可以管理一个资源池,而不是指定固定数目的slot,像在MR1中map slot 空闲,而reduce slot 不足时,reduce 运行只能等待资源释放

  3. 可用性,当服务守护进程失败时,通过另一服务守护进程复制接管工作所需的状态以便继续提供服务,以提高高可用性(HA),然而jobtracker内存中大量快速变化的复杂状态,使得改善服务获得高可用性变得困难,而yarn 中分而治之的管理方式,对于资源管理器及application master 都提供了高可用性。

  4. 多租户,yarn采用的是租户方式的环境,mr只是yarn上的其中一种租户,可以运行多个版本mr以达到升级版本更好管理

4.Yarn的调度器

 >1 FIFO(先进先出)调度,不需配置,不适合共享集群,因为会被大的应用占用整体资源;

 >2 容器调度器(Capacity Scheduler),使用独立的专门的队列,保证小作业已提交就可以启动,但是为小任务专门设置一个队列会预先占用一定的集群资源,这就导致大任务的执行时间会落后于使用FIFO调度器时的时间。

    一般单个作业使用的资源不会超过其队列容量。然而,如果队列中有多个作业,而且队列资源不够用了呢,这时如果仍然有可用空闲资源,那么容器调度器可能会将空余的资源分配给队列中的作业,哪怕这会超过队列容量。这称为“弹性队列”,正常操作时,容量调度器不会通过强行中止来抢占容器(container),因此如果一个队列一开始资源够用,然后随着需求增长,资源开始不够用了时,那队列只能等其他队列释放容器资源,缓解这种情况的方法是,为队列设置一个最大容量限制,这样这个队列就不会过多侵占其他队列的容量,当然这样做是以牺牲队列弹性为代价的,因此需不断尝试和失败中找一个合理的折中。

 >3 公平调度器(Fair Scheduler),我们不需要预先占用一定的系统资源,Fair调度器会为所有运行的job动态的调整系统资源,当第一个大job提交时,只有这一个job在运行,此时它获得了所有集群资源;当第二个小任务提交后,Fair调度器会分配一半资源给这个小任务,让这两个任务公平的共享集群资源。

  从第二个任务提交到获得资源会有一定的延迟,因为它需要等待第一个任务释放占用的Container。小任务执行完成之后也会释放自己占用的资源,大任务又获得了全部的系统资源。最终的效果就是Fair调度器即得到了高的资源利用率又能保证小任务及时完成。

    那如果在队列之间公平共享的呢?

    如果有AB两个用户,分布拥有自己的队列。

        1.A队列启动一个作业,B没有作业,A会分配到全部可用的资源,

        2.当A的作业仍然在运行时,B启动一个作业,一段时间后,每个作业都用到了一半的集群资源,

        3.如果B启动了第二个作业,且其他作业仍然在运行,那么第二个作业将和B的其他作业共享资源,因此B的每个作业将占用4分之一的集群资源,A仍然占用一半的集群资源。 

相关文章

  • Yarn是个什么玩意

    Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而mapreduce...

  • 爱情是个什么玩意

    “陈曦,我们分手吧” “什么!” “我说 我们分手吧”我一字一句的平静的说着。 “你又抽什么疯了,好好的,你到底让...

  • 梦想是个什么玩意?

    一直以来都讨厌鸡汤文。想找个词表达“我非常想做的事”,却没有比“梦想”更合适的了。 幼儿园时代每次被问这个问题,我...

  • 公平是个什么玩意

    你相信公平吗?我信。 但我不相信这个世界上会有公平。 最近大家又开始了对于高考的各种议论与怀念。我们重视高考,乃至...

  • 死亡是个什么玩意

    李咏走了?!曾带给我们无限欢乐,创造独特舞台风格的李咏走了! 早上看到这个消息,真难以置信。 李咏和妻子哈文最后一...

  • 运气是个什么玩意?

    最近点背,是不是这么想,说明我还是不能平和面对一切。 选车位的时候竟然选错了楼,选到别人家去了。 上帝,我是不是晕...

  • 爱情是个什么玩意?

    爱情是个什么玩意? I 上周和哥姐几个吃晚饭时,又谈及了我和初恋。 无非感慨我俩是无缝榫接完美啮合的绝配,并为金童...

  • 爱情是个什么玩意

    昨天我第一次参加联谊会,感觉中国的姑娘一个个都美若天仙。像我这种腼腆的男孩,大多是在偷看她们。我啊,大体是不会唠嗑...

  • Nodejs是个什么玩意?

    最近一个哥们说要入开发的坑.........沉(痛地)思(考)后觉得,不如我来挖吧.... Nodejs Node...

  • 爱情是个什么玩意

    我一直不懂爱情是个啥,我觉得它就是人吃饱了没事干的一件消遣的玩意。 是的,我不屑它。我觉得情情爱爱的太麻烦了,尤其...

网友评论

      本文标题:Yarn是个什么玩意

      本文链接:https://www.haomeiwen.com/subject/dmxyaktx.html