YARN 简介

YARN

Yarn产生背景

Yarn直接来自于MR1.0.

MR1.0 问题:采用的是master slave结构,master是JobTracker。Slave是TaskTracker、JobTracker整个集群只有一个,构建调度和资源管理,两个功能。每个节点上,可以通过一个TaskTracker控制本节点的资源管理和任务管理。每个TaskTracker通过心跳机制周期性的向JobTracker发送本节点的资源使用情况以及任务运行状态,JobTracker会通过心跳应答将新的命令或者任务发送至TaskTracker。

1、 JobTracker是一个性能瓶颈,既负责资源管理有负责作业调度,实际上,资源管理是所有的计算框架共有的一个模块,不能将其寄宿在某一个特殊的计算框架中,另,作业调度模块是与应用层相关的,与通用的资源管理模块分开。
2、 JobTracker是一个单点故障,一旦出现宕机,整个集群将无法正常使用,
3、 只支持Map Reduce这一种计算模型,如果希望支持Map-reduce-reduce这种计算框架,无法支持,需要修改JobTracker。
4、 MRv1.0 扩展性差、可靠性差、资源利用率低(MRv1采用了基于槽位的资源分配模型,槽位是一种粗粒度的资源划分单位;通常一个任务不会用完槽位对应的资源,且其他任务也无法使用这些空闲资源,无法支持多种计算框架)

Yarn基本构成与资源调度

主从架构

也是采用 master(Resource Manager)- slave (Node Manager)架构,Resource Manager 整个集群只有一个,一个可靠的节点。

1、 每个节点上可以负责该节点上的资源管理以及任务调度,Node Manager 会定时向Resource Manager汇报本节点上 的资源使用情况和任务运行状态,
2、 Resource Manager会通过心跳应答的机制向Node Manager下达命令或者分发新的任务,
3、 Yarn 将某一资源分配给该应用程序后,应用程序会启动一个Application Master,
4、 Application Master为应用程序负责向Resource Manager申请资源,申请资源之后,再和申请到的节点进行通信,运行内部任务。

两层调度

1、 第一层是Yarn中Resource Manager将资源分配(Driver Application Master所需要的资源)给各应用程序,
2、 第二层是应用程序(Application Master启动后,向Resource Manager申请Container资源,即Executor运行所需要的资源)申请资源成功,ResourceManager将资源分配给内部的各种任务,在对应的节点上启动Container以运行Application Master分发过来的任务。
Yarn中,任务会运行在Container的一个容器内,封装的是整个任务的运行环境,比如CPU、内存等环境变量封装在container中,在container中运行。

ResourceManager

全局资源管理器,整个集群只有一个,负责集群资源的统一调度和任务管理.

主要由两个组件构成:资源调度器 Resource Scheduler 和应用程序管理器(Applications Master -- ASM)
调度器:

1、 调度器根据容量、队列等限制条件,将系统中的资源分配给各个正在运行的应用程序
2、 不负责具体应用程序的相关工作,比如监控或跟踪状态
3、 不负责重新启动失败任务
4、 资源分配单位用“资源容器”(Resource Container)表示
5、 Container是一个动态资源分配单位,它将内存、CPU、磁盘、网络等资源封装在一起,从而限定每个任务的资源量
6、 调度器是一个可拔插的组件,用户可以自行设计
7、 Yarn提供了多种直接可用的调度器,比如Fair Scheduler、Capacity Scheduler等

ResourceManager详细功能:
1、 处理客户端请求,
2、 启动/监控Application Master(每个应用程序有一个,每个应用程序的master负责该应用程序的资源申请,任务调度,任务容错等),
3、 监控Node Manager(如果一个节点挂了,Resource Manager会将运行在该Node Manager上的任务通知Application master,让application master触发新的调度或者其他操作,),
4、 资源分配与调度。(集群中所有节点的资源统筹灵活的智能的分配给各个应用程序)

应用程序管理器 ( Application Master )

负责管理整个系统的所有应用程序

用户提交的每个应用程序只有一个,负责应用程序的管理
AM主要功能:
1、 与RM调度器协商以获取资源(用Container表示)
2、 将得到的任务进一步分配给内部的任务
3、 与NM通信以启动/停止任务
4、 监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务
5、 YARN自带的AM实现:一个用于演示AM编写方法的示例程序distributedshell

详细功能:
1、 数据切分,
2、 为应用程序申请资源,并进一步分配给内部任务,
3、 任务监控与容错

Node Manager

整个集群有多个,负责单节点资源管理和使用,每个节点上的资源和任务管理器
详细功能:
1、 定时向RM汇报本节点上的资源使用情况和各个Container的运行状态
2、 单个节点上的资源管理和任务管理
3、 处理来自Resource Manager的命令(杀死任务或重启节点等)
4、 处理来自Application Master的命令(启动task等命令)

Container

是Yarn中的资源抽象,封装了某个节点上的多维度资源,对任务运行环境的抽象
Yarn会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源
Container不同于MRv1中的slot,是一个动态资源划分单位,是根据应用程序的需求动态生成的。

描述一系列信息:
1、 任务运行资源(节点、内存、CPU),任务执行在哪个节点,占用多少内存,多少CPU
2、 任务启动命令,
3、 任务运行环境,
4、 当Yarn把一个资源(管理资源)2G内存,一个CPU分配给一个应用程序的时候,将运行资源的描述封装为一个container,发送给Application master,application master根据资源的特点将资源分配给内部的某一个task,之后再与node manager通信启动container,进而启动task。

Yarn通信协议

1、 RPC协议是连接各个组件的“大动脉”
2、 Yarn 采用的是拉式(pull-based)通信模型
3、 任何两个需要相互通信的组件之间只有一个RPC协议
4、 对于任何一个RPC协议,通信双方有一端是Client,另一端为Server,且Client总是主动连接Server的。

Yarn主要由以下几个RPC协议组成:

1、 ApplicationClientProtocol:JobClient通过该RPC协议提交应用程序、查询应用程序状态等。
2、 ResourceManagerAdministratorProtocol:Admin通过该RPC协议更新系统配置文件,比如节点黑白名单,用户队列权限等
3、 ApplicationMasterProtocol:AM通过该RPC协议向RM注册和撤销自己,并为各个任务申请资源
4、 ContainerManagerProtocol:AM通过该RPC要求NM启动或者停止Container,获取各个Container的使用状态等信息。
5、 ResourceTracker:NM通过该RPC协议向RM注册,并定时发送心跳信息汇报当前节点的资源使用情况和Container运行情况。

Yarn工作流程

运行Yarn的应用程序有两类:短应用程序和长应用程序。
短应用程序
指在一定时间内可以运行完成并正常退出的应用程序,比如MR作业
长应用程序
是指不出意外,永不终止运行的应用程序,通常是一些服务,Storm Service,HBase Service等。
当用户向Yarn提交一个应用程序后,Yarn将分两步执行该应用程序:首先启动Application Master,然后由Application Master启动应用程序。

从并行编程的角度理解YARN

为快速处理一个大数据集,通常采用多线程并行编程

Yarn 总结- 资源管理系统

对集群中各类资源进行抽象;按照一定的策略,将资源分配给应用程序或服务;采用一定的隔离机制防止应用程序或者服务之间因资源抢占而相互干扰
引入YARN这一层后,各种计算框架可各自发挥自己的优势,并由YARN进行统一管理。

云计算概念与Yarn

三层服务:Infrastructure As A Service IaaS、PaaS和SaaS
1、 IaaS:基础设施即服务。消费者通过Internet可以从完善的计算机基础设施获得服务
2、 PaaS:平台即服务。PaaS是将软件研发的平台作为一种服务,以SaaS的模式提交给用户
3、 SaaS:软件即服务。 它是一种通过Internet提供软件的模式,用户无需购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动
YARN可以看作PaaS层,它能够为不同类型的应用程序提供统一的管理和调度

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

推荐阅读更多精彩内容