大数据之Hadoop2.0框架之YARN

1.Yarn概念

定位:可以理解成分布式操作系统
作用:资源整合,让系统资源得到最大化利用,同一套硬件集群中可以运行多个任务(mr,spark,flink…)
在这里插入图片描述

2.Yarn核心思想

2.1 MapReduce
2.2 Yarn MR2

在Hadoop1.0 中,MapReduce 的 JobTracker 负责了太多
的工作,包括资源调度,管理众多的 TaskTracker 等工作。这自然
是不合理的,于是 Hadoop 在 1.0 到 2.0 的升级过程中,便将
JobTracker 的资源调度工作独立了出来,而这一改动,直接让
Hadoop 成为大数据中最稳固的那一块基石。,而这个独立出来的
资源管理框架,就是 Yarn
在Hadoop2.0 中, 原框架中核心的 JobTracker TaskTracker
不见了,取而代之的是ResourceManager, ApplicationMaster 与
NodeManager 三个部分
在 HADOOP 2.0中,HDFS可以理解为磁盘,进行存储;YARN可以理解为分布式操作系统;MR与其他(如Spark,Storm,Flink等)可以理解为应用程序。

3.Yarn工作流程

在这里插入图片描述

1.client提交作业给Yarn后,RM首先和NM进行通信,通信的目的是为了给APP Mater分配第一个容器
2.APP Master启动之后会对任务进行拆分,需要多个container(因为一个container无法完全执行一个Task) 在多个容器中执行.因此APP Master要向RM发送心跳,向RM进行申请运行程序的一些容器
3.AM要和运行任务的container保持心跳
因为任务运行的成功/失败的状态AM必须要知道,知道的前提就是AM和container保持心跳关系.当任务执行完成后,AM会像RM进行申请,注销container,该container所处的NM的资源就得到了释放
如果任务执行失败,AM会像RM进行申请,在另外的节点上启动一个container运行任务(新的container只会运行还未运行的任务,运行完的任务是已经得到保存的)

4.Yarn核心组件概念

MapReduce经历了完全重构,不再是Hadoop的核心组件,
而成为Yarn 上的一种应用框架

4.1 ResouceManager

RM是yarn的主,相当于Hadoop1.0中jobtracker 进行权利的下放

本质:是一个进程,运行在专有的机器上的,要求机器的配置足够高
• RM处理客户端请求,接收JobSubmitter提交的作业,按照作业的上下文
(Context) 信息,以及从 NodeManager(NM) 收集来的状态信息,启动调度
过程,分配一个 Container 作为 App Master
• RM拥有为系统中所有应用资源分配的决定权,是中心服务,做的事情就是调度
启动每一个Job所属的Application、另外监控Application的存在情况am
• 与运行在每个节点上的NM进程交互,通过心跳通信,达到监控NM的目的
• RM有一个可插拔的调度器组件Scheduler
• 不负责应用程序的监控和状态跟踪(AM)
• 不保证应用程序失败或者硬件失败的情况下对Task的重启(AM)

4.2 NodeManager

是节点的主,相当于是1.0中tasktracker, 接受RM请求,分配container资源,同时通过心跳和RM保持通信
是slave进程,类似TaskTracker的角色,是每个机器框架代理
• 处理来自RM的任务请求
• 接收并处理来自ApplicationMaster的Container启动、停止等各种请求
• 负责启动应用程序的Container(执行应用程序的容器),并监控他们的资源使用情况(CPU、内存、磁盘和网络),并报告给RM
• 总的来说,在单节点上进行资源管理和任务管理

4.3 ApplicationManager

负责jobtracker中“任务调度”的角色

本质: AM是一个 container,管理其他的container,是一个任务的主,启动任务的时候 AM启动, 当任务执行完毕,AM消失。也是一个普通的container
• 应用程序的Master,每一个应用对应一个AM,在用户提交一个应用程序时,一个AM的轻量型进程实例会启动,AM协调应用程序内的所有任务的执行
• 负责一个Job生命周期内的所有工作,类似旧的JobTracker
• 每一个Job都有一个AM,运行在RM以外的机器上
• 与RM协商资源
– 与Scheduler协商合适的Container
• 与NM协同工作与Scheduler协商合适的Container进行Container的监控
• 是一个普通Container的身份运行

4.4 container

本质:是一个进程,是由NM进行启动,作用:真正执行任务的地方
•Yarn 将CPU核数,内存这些计算资源都封装成为一个个的容器
•是任务运行环境的抽象封装(8,16G)container(1cpu,2G)container(1cpu,6G)
• Container只是使用NM上指定资源的权利
• AM必须向NM提供更多的信息来启动Container
• 描述任务的运行资源(内存、cpu)、启动命令run.sh和运行环境

5.容错能力

(1)RM挂掉怎么办? 主(对外服务)备(数据备份,准备随时登位)切换
(2)NM挂掉怎么办?
NM有AM:整个任务挂掉
NM没有AM:只是存在执行任务的container, 进行临时调配,整个任务不会挂
(2)AM挂掉怎么办?
RM上有一个AM,来负责启动AM

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值