关于YARN---大数据分析学习笔记4

一 ,YARN是什么

YARN 全称(yet anthor resource negotiator)是HADOOP 的集群资源管理系统,YARN提供请求和使用集群资源的API
关于YARN---大数据分析学习笔记4_第1张图片关于YARN---大数据分析学习笔记4_第2张图片
YARN的核心思想是将资源管理和Job的调度/监控进行分离
Mapreduce1和YARN的比较

MapReduce1 YARN
Jobtracker 资源管理器,application master,时间轴服务器
Tasktracker 节点管理器
Slot 容器
可扩展瓶颈:节点4000,任务数40000 可扩展瓶颈:节点10000,任务数100000
jobtracker中有大量快速变化的复杂状态 高可用
多租户
静态分配slot(mapslot 和 reduceslot) 资源池,精细化管理

在Hadoop 1.0及更早版本中,我们只能运行MapReduce,这导致图形处理、迭代计算等任务无法有效执行。在Hadoop 2.0及后续版本中,MapReduce的调度部分被外部化并重新编写为名为Yarn的新组件,Yarn最大的特点是执行调度与Hadoop上运行的任务类型无关
Yarn主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成。Yarn框架执行主要功能,即在集群中调度资源(上文提到的容器)。集群中的应用程序与YARN框架通信,要求分配特定于应用程序的容器资源,Yarn框架会评估这些请求并尝试实现。Yarn调度的一个重要部分是监视当前正在执行的容器,一旦容器完成,调度程序就可以释放容量来安排其他工作。此外,每个容器都有一个协议,指定允许使用的系统资源,并在容器超出边界的情况下终止容器,以避免恶意影响其他应用程序。

二,YARN的运行机制

YARN 通过两类长期运行的守护进程提供自己的核心服务
(1):管理集群上资源使用的资源管理器(Resource manager)
ResourceManager是Yarn的主进程,其唯一功能是仲裁Hadoop集群上的资源,响应客户端创建容器请求,调度程序根据特定的多租户规则确定何人可以在何时何地创建容器,正如Hadoop 1.0版本,ResourceManager调度程序是可选择的,这意味着你可以选择最适合的调度程序,而实际创建的容器被委托给NodeManager。
(2):运行在集群中所有节点上且能够启动和监控容器的节点管理器(node manager)
NodeManager是在集群每个节点上运行的从属进程。它的主要工作是创建、监视和杀死容器。它为来自ResourceManager和ApplicationMaster的请求提供服务以创建容器,并向ResourceManager报告容器的状态。ResourceManager使用这些状态消息中包含的数据对请求做出调度决策。在非HA模式下,只存在ResourceManager单个实例。
其余组件
(1) ApplicationMaster, 简称AM,每个应用程序都对应着一个AM。
例如:MapReduce会对应一个、Spark会对应一个。它主要负责应用程序的管理,为应用程序向RM申请资源(Core、Memory),将资源分配给内部的task。AM需要与NM通信,以此来启动或停止task。task是运行在Container里面的,所以AM也是运行在Container里面。
(2) Container, 封装了CPU、Memory等资源的一个容器,相当于是一个任务运行环境的抽象。
容器是由NodeManager代表ApplicationMaster创建的特定于应用程序的进程。ApplicationManager本身也是一个由ResourceManager创建的容器。由ApplicationManager创建的容器可以是任意进程——例如,容器进程可以是简单的Linux命令,例如awk,Python应用程序或可由操作系统启动的任何进程,这也是YARN强大功能的体现——可以在Hadoop集群的任何节点启动和管理任何进程。
(3)Client, 客户端,它可以提交作业、查询作业的运行进度以及结束作业。
运行过程:
(1)Client向YARN提交JOB,找ResourceManager分配资源
(2)ResourceManager开启一个container,在container中运行一个application manager
(3)application manager找到一个nodemanager启动Application master
(4)Application master(AM)向YARN申请资源
(5)Resource scheduler 将资源分装发送给AM
(6)AM将资源分配给各个namenode
(7)执行maptask,然后执行reducetask,将结果反馈给AM
(8)最后将结果反馈给application manager
关于YARN---大数据分析学习笔记4_第3张图片

YARN存在的问题

(1)Yarn不适用于长时间运行的进程,这受到了来自Impala和Tez等项目的挑战,这些项目受益于此类功能。
(2)编写Yarn应用程序非常复杂,因为需要实现容器管理和容错,这可能需要一些复杂的ApplicationMaster和容器状态管理,以便在失败时可回滚至前一状态;
(3)原生Yarn不支持组合调度,即并行快速启动大量容器的能力,这是Impala和Hamster(OpenMPI)等项目的一大优势。

你可能感兴趣的:(大数据,大数据分析)