Yarn是个什么玩意

    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仍然占用一半的集群资源。 

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,719评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,337评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,887评论 0 324
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,488评论 1 266
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,313评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,284评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,672评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,346评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,644评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,700评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,457评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,316评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,706评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,261评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,648评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,859评论 2 335

推荐阅读更多精彩内容