一、YARN是一个通用资源管理系统和调度平台,为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
1、通用指不仅支持mr程序,也支持其它计算程序
2、资源管理包括集群的硬件资源、cpu、内存等
3、调度平台指多个程序同时执行时 如何分配计算资源,调度的规则(算法)
二、YARN类似一个分布式的操作系统平台,为MapReduce等计算程序提供运行所需的内存、CPU等资源。
三、yarn在hadoop中的位置
四、YARN上的应用类型
数据的计算处理过程 = 数据 + 程序 + 运算资源
原始:单机环境,三者的协调不是问题,但是海量数据则需要分布式处理
第0阶段:Ad Hoc集群
没有持久存储数据的需求,也没有共享数据和计算结果的动机。在少量节点上搭建集群环境,将数据保存在hdfs中,运行map reduce任务获得结果,拆掉集群
第1阶段:HOD集群
数据持久存储在hdfs中,并共享。Yahoo开发了HOD平台,在一个大规模的物理集群上供应虚拟hadoop集群系统。在已经分配的节点上,HOD启动mMR和HDFS守护进程来响应用户数据和应用的请求。
缺点:无法支持数据本地化、资源回收率低、无法动态扩容缩容、多租户共享延迟高等
第2阶段:共享MR
是hadoop1.x中的主要框架模型
JobTracker 中央守护进程,负责运行集群上的所有作业。
TaskTracker 系统里的从进程,根据JobTracker 指令执行任务
缺点:JobTracker既做计算又管理资源,可扩展性差
第3阶段:YARN集群
mr专项负责计算,yarn负责任务调度和资源管理
yarn可解决以往架构的需求和缺陷
yarn是标准的主从架构,ResourceManager是Master,NodeManager是Slave。
1、Client 向RM提交MR作业
2、RM 接收client提交的作业、给AppMaster分配资源、监听NM节点状态、监听AppMaster运行状态
3、NM 向RM汇报节点状态
4、AppMaster 向RM申请计算资源、监听Container(MR TASK)作业状态
5、Container(MR TASK)向AppMaster汇报MR作业状态
集群角色
一、RM
1、集群中的主角色,决定系统中所有应用程序之间资源分配的最终权限。
2、RM接受用户提交的作业,并通过NM分配和管理各个机器上的计算资源,资源以Container容器形式给与。
3、RM包含应用程序管理器(Applications Manager ASM)、调度器(Scheduler)等组件
a. 调度器根据容量、队列等限制条件,将系统中的资源分配给各个正在运行的应用程序。
b. 应用程序管理器负责管理整个系统中所有的应用程序,包括应用程序提交、与调度器协商资源以启动Application Manager(AM)、监控AM运行状态并在失败时重新启动它等。
二、NM
1、集群中的从角色,一台机器上部署一个N,负责管理本机器上的资源。
2、 定时向RM汇报本节点上的资源使用情况和各容器的运行状态
3、接受AM的命令启动|停止容器等
三、ApplicationMaster (App Mast)(AM)
1、用户提交的每个应用程序均包含一个AM,是应用程序内的老大,负责程序内部各阶段的资源申请,监控程序执行情况。
2、向RM的ASM 注册或者撤销自己
3、与RM调度器协商获取资源(用容器表示)
4、将得到的任务进一步分配给内部的任务
4、与NM通信以启动/停止任务;
5、监听所有任务运行状态,任务执行失败时重新为任务申请资源以重启任务
四、容器
1、yarn中的资源抽象,封装了某个节点上的多维资源,如内存、cpu、磁盘、网络等等
2、AM向RM申请资源时,RM为AM返回一个Container对象。
3、yarn会为每个任务分配一个Container,给任务只能使用该分配的资源。
4、当前yarn只支持cpu和内存两种资源,底层使用了轻量级资源隔离机制
基于zookeeper集群实现YARN HA,解决RM单点故障问题
实现HA的关键是主备之间状态数据同步和顺序切换;通过zk存储共享集群的状态数据(zk本质也是小文件存储系统);可手动或者基于zk的ActiveStandyElector来自动实现主备切换;ActiveStandyElector是嵌入在RM中充当故障检查器和leader选举的线程,不是单独的ZKFC守护进程(HDFS运行单独的ZKFC守护进程)
YARN集群通常和HDFS一起搭建,NM通常和HDFS的DN部署在一起,方便数据计算。
步骤三:hadoop安装包目录结构
步骤四:编辑配置文件
步骤五:分发同步安装包
步骤六:配置环境变量
步骤七:格式化操作
步骤八:启动
RM负责资源管理和应用调度,单点部署时可通过重启机制,使RM失败时不被用户发现。
RM的重启机制有两种:Non-work-preserving 和 Work-preserving
Non-work-preserving不保留运行过程产生的数据,只保留应用提交的信息和最终执行状态,重启后重新执行任务
Work-preserving保留运行过程产生的数据,重启会继续执行。
RM状态数据的存储介质