Hadoop2.x 资源调度框架Yarn
来源:互联网 发布:双色球选号软件破解版 编辑:程序博客网 时间:2024/05/21 14:03
1.MapReduce 1.0 的架构图
在MapReduce1.0中主要由JobTracker和TaskTracker组成,JobTracke负责资源监控和作业调度,TaskTracker是Hadoop集群中运行于各个节点上的服务。负责任务的执行和汇报心跳。
从上图中可以看到JobTracker在整个集群中只有一个,如果JobTracker运行时发生故障或挂掉,则整个集群的作业将无法提交或运行。还有就是节点压力大,因为客户端的所有请求都会经过JobTracker,同时还负责整个集群的作业控制和资源管理。最后就是它仅支持运行MapReduce作业,无法运行Spark、Storm等其它的作业。
综上所述,在Hadoop 1.x 中 的MapReduce 主要有三个缺点:单点故障、节点压力大,只能运行MapReduce作业,所以在Hadoop2.x中产生了一个资源调度框架Yarn来解决Hadoop 1.x中所面临的问题。Hadoop 2.x 后 只要按照Yarn的标准规范开发Application Master,就可以把你的作业提交到Yarn 上运行,Yarn 会进行统一的资源管理及分配,它不仅可以运行MapReduce作业,还可以运行其它各种类型的作业,比如:流式计算框架Storm、内存计算框架Spark等等。
2.Yarn 简介
Yarn(Yet Another Resource Negotiator的缩写)是Hadoop集群中的资源管理系统,Hadoop 2.x 对MapReduce进行了彻底的设计重构,它的基本思想是将MapReduce1.x 中的JobTracker拆分成了两个独立的服务一个全局的资源管理器ResourceManager和每个应用程序特有的Application Master。
ResourceManager 负责整个系统的资源管理和分配,Application Master 负责单个应用程序的管理,结合从ResourceManager中获取的资源和NodeManager协同工作来运行和监控任务。
3.Yarn 架构
Yarn的架构和NameNode一样,仍然是Master/Slave结构,在整个资源管理框架中,ResourceManager为Master,NodeManager为Slave,1个ResourceManager对应多个NodeManager构成(一对多)。
ResourceManager负责对各个NodeManager上的资源进行统一管理和调度。当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个程序的ApplicationMaster,它负责向ResourceManager申请资源,并要求NodeManger启动可以占用一定资源的任务。由于不同的ApplicationMaster被分布到不同的节点上,因此它们之间不会相互影响。
Yarn 架构图
Yarn 主要由如下4部分组成
(1).ResourceManager(RM)
RM 在整个集群中处于工作状态的只有一个,它负责资源的统一管理和调度,主要任务如下
1)处理客户端发起的请求(启动/杀死应用程序)
2)启动/监控ApplicationMaster,AM挂了,RM将会在另外一个节点上启动该AM
3) RM要监控NM
4)整个系统的资源分配和调度
(2).NodeManager(NM)
整个集群中有多个,负责自己节点的资源使用和管理,主要任务如下
1)定时向RM汇报本节点上的资源使用情况和各个Container的运行情况
2)接收和处理来自RM的Container启动和停止的各种命令
3)处理来自AM的命令
4)本节点上的资源管理和任务管理
(3).ApplicationMaster(AM)
每个应用程序一个,负责应用程序的管理,主要任务如下
1)数据切分
2)为应用程序向RM申请资源(Container),分配内部任务
3)与NM通信以启动/停止任务,Task都是运行在Container中的
4)Task的容错
(4).Container
对任务环境的封装,如内存、CPU、磁盘、网络等与任务相关的信息,当AM向RM申请资源时,RM为AM返回的资源便是用Container表示。YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。
4.Yarn 的执行流程
上图为Yarn 执行流程图,当用户向Yarn 提交一个应用程序后,Yarn将分两个阶段运行该程序:第一个阶段为启动ApplicationMaster,由ApplicationMaster创建应用程序,为它申请资源,并监控它的整个运行过程,直到运行成功,具体分为如下几个步骤:
(1).用户向YARN提交应用程序,其中包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等
(2).ResourceManager为该应用程序分配第一个Container,并与对应的NodeManager通信,要求它在这个Container中启动应用程序的ApplicationMaster
(3).ApplicationMaster首先向ResourceManager注册,这样用户可以直接通过ResourceManager查看应用程序的运行状态,然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束,即重复步骤4~7
(4).一旦ApplicationMaster申请到资源后,则与对应的NodeManager通信,要求其启动任务
(5).应用程序运行完成后,ApplicationMaster向ResourceManager注销并关闭自己
Yarn 的容错性
yarn 的容错性主要有如下3个方面:
(1).ResourceManager 容错
存在单点故障,基于zookeeper实现hadoop ha 集群高可用
(2).NodeManager 容错
失败后,RM将失败的任务会告诉AM,让AM来决定是否处理失败的任务
(3).Application Master 容错
失败后,由RM负责重启,RMAPPMaster会保存已经运行完成的Task,重启后无需重新运行
环境搭建(单机)
mapred-site.xml
<property> <name>mapreduce.framework.name</name> <value>yarn</value></property>
yarn-site.xml
<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value></property>
启动 Yarn
$ start-yarn.sh
输入jps命令如果可以看到如下两个进程表示成功
NodeManagerResourceManager
Hadoop 高可用集群请查看博客:
http://blog.csdn.net/HG_Harvey/article/details/76269561
- Hadoop2.x 资源调度框架Yarn
- 资源调度框架YARN
- Hadoop2.x YARN架构
- Hadoop2.x的yarn
- Hadoop2.X Yarn框架原理及运作机制
- Hadoop2.x中Yarn框架的任务发布流程
- Yarn 资源调度策略
- Yarn 资源调度器
- YARN资源调度策略
- Yarn资源调度策略
- Hadoop2.x调度器
- hadoop2.x下Yarn详解
- hadoop2.x --- yarn 概念 笔记
- hadoop2.0yarn框架简介
- yarn 资源调度问题排查
- 分布式资源调度系统 YARN
- hadoop2.0.x【3】--Yarn Commands
- Hadoop2.x Yarn作业提交(客户端)
- HDU6069多校第四场 Counting Divisors
- SmartPtr(智能指针)
- 最大上升子序列-C语言
- node.js 探索之路(url)
- 干货3:顺序栈
- Hadoop2.x 资源调度框架Yarn
- B
- 合纵连衡-OJ
- 深入理解struts2中的值栈
- 大家好,神游前端前来报到
- 题目:输入三个整数x,y,z,请把这三个数由小到大输出。
- 【POJ 2485】Highways(最小生成树)
- C++中的类所占内存空间总结
- web自动化测试第11步:切换窗口、frame、alert的新方法:switch_to包详解