新一代mapreduce体系架构介绍-YARN
2013-10-12 10:34
183 查看
最近研究了下新一代的mapreduce框架YARN,这里先对YARN框架的引入和架构做个介绍,后续针对每一块做深入分析
从Hadoop0.23版本开始对于mapduce计算框架,就完全是新的架构了(YARN)。老的版本MRv1 Jobtracker中存在单点,功能比较多的问题,负责资源管理调度和job的生命周期管理(task调度,跟踪task过程状态,task处理容错),这样当大量的任务需要处理时,单个的jobtracker无论在内存还是其他资源方面总存在瓶颈,在伸缩性、资源利用率、运行除mapreduce的其他任务等方面都会有限制。
MRv2 Yarn框架把资源调度和task管理监控分离开来,由资源管理器NodeManager负责资源调度,每一个application(job)由一个AppMaster负责对task进行调度管理监控,并且可以监控AppMaster的状态,有问题可以在其他节点重启。
MRv1 mapreduce框架使用slot做资源表示单位,并且map slot和reduce slot分离的,这样资源不能共享,资源利用率不高,yarn使用节点的cpu、内存等资源作为资源表示单位,大大提高了资源利用率。
MRv1只支持批量的mapreduce计算,MRv2 yarn框架提供ApplicationMaster插件式的框架库,支持除了mapreduce外的其他的计算,如实时近实时的流处理,MPI等等,使得hadoop成为一个资源和数据共享的基础计算框架,减少集群运维成本,提高资源利用率。
MRv2 JobHistory 从JobTracker中分离出来,减轻JobTracker的压力。
上图是yarn的架构,主要包括以下这几种角色
ResourceManager(RM):主要接收客户端任务请求,接收和监控NodeManager(NM)的资源情况汇报,负责资源的分配与调度,启动和监控ApplicationMaster(AM)。
NodeManager:主要是节点上的资源管理,启动Container运行task计算,上报资源、container情况给RM和任务处理情况给AM。
ApplicationMaster:主要是单个Application(Job)的task管理和调度,向RM进行资源的申请,向NM发出launch Container指令,接收NM的task处理状态信息。
下面简单介绍一下提交一个job的处理过程,
1、client submit一个job到RM,进入RM中的Scheduler队列供调度
2、RM根据NM汇报的资源情况(NM会定时汇报资源和container使用情况),请求一个合适的NM launch container,以启动运行AM
3、AM启动后,注册到RM上,以使client可以查到AM的信息,便于client直接和AM通信
4、AM启动后,根据Job 相关的split的task情况,会和RM协商申请container资源
5、RM分配给AM container资源后,根据container的信息,向对应的NM 请求launch container
6、NM启动container运行task,运行过程中向AM汇报进度状态信息,类似于MRv1中 task的汇报;同时NM也会定时的向RM汇报container的使用情况。
7、在application(job)执行过程中,client可以和AM通信,获取application相关的进度和状态信息。
8、在application(job)完成后,AM通知RM clear自己的相关信息,并关闭,释放自己占用的container。
从Hadoop0.23版本开始对于mapduce计算框架,就完全是新的架构了(YARN)。老的版本MRv1 Jobtracker中存在单点,功能比较多的问题,负责资源管理调度和job的生命周期管理(task调度,跟踪task过程状态,task处理容错),这样当大量的任务需要处理时,单个的jobtracker无论在内存还是其他资源方面总存在瓶颈,在伸缩性、资源利用率、运行除mapreduce的其他任务等方面都会有限制。
MRv2 Yarn框架把资源调度和task管理监控分离开来,由资源管理器NodeManager负责资源调度,每一个application(job)由一个AppMaster负责对task进行调度管理监控,并且可以监控AppMaster的状态,有问题可以在其他节点重启。
MRv1 mapreduce框架使用slot做资源表示单位,并且map slot和reduce slot分离的,这样资源不能共享,资源利用率不高,yarn使用节点的cpu、内存等资源作为资源表示单位,大大提高了资源利用率。
MRv1只支持批量的mapreduce计算,MRv2 yarn框架提供ApplicationMaster插件式的框架库,支持除了mapreduce外的其他的计算,如实时近实时的流处理,MPI等等,使得hadoop成为一个资源和数据共享的基础计算框架,减少集群运维成本,提高资源利用率。
MRv2 JobHistory 从JobTracker中分离出来,减轻JobTracker的压力。
上图是yarn的架构,主要包括以下这几种角色
ResourceManager(RM):主要接收客户端任务请求,接收和监控NodeManager(NM)的资源情况汇报,负责资源的分配与调度,启动和监控ApplicationMaster(AM)。
NodeManager:主要是节点上的资源管理,启动Container运行task计算,上报资源、container情况给RM和任务处理情况给AM。
ApplicationMaster:主要是单个Application(Job)的task管理和调度,向RM进行资源的申请,向NM发出launch Container指令,接收NM的task处理状态信息。
下面简单介绍一下提交一个job的处理过程,
1、client submit一个job到RM,进入RM中的Scheduler队列供调度
2、RM根据NM汇报的资源情况(NM会定时汇报资源和container使用情况),请求一个合适的NM launch container,以启动运行AM
3、AM启动后,注册到RM上,以使client可以查到AM的信息,便于client直接和AM通信
4、AM启动后,根据Job 相关的split的task情况,会和RM协商申请container资源
5、RM分配给AM container资源后,根据container的信息,向对应的NM 请求launch container
6、NM启动container运行task,运行过程中向AM汇报进度状态信息,类似于MRv1中 task的汇报;同时NM也会定时的向RM汇报container的使用情况。
7、在application(job)执行过程中,client可以和AM通信,获取application相关的进度和状态信息。
8、在application(job)完成后,AM通知RM clear自己的相关信息,并关闭,释放自己占用的container。
相关文章推荐
- 新一代mapreduce体系架构介绍-YARN
- Hadoop核心架构体系(HDFS+MapReduce+Hbase+Hive+Yarn)
- MapReduce和Yarn的架构设计
- MapReduce模型以及体系架构
- 互联网大数据框架介绍(一)Hadoop,HDFS,yarn,Mapreduce
- WCF体系架构(之一:Client与Server信息交互处理流程初略介绍)
- linux arch目录下处理器体系架构介绍
- SaaS系列介绍之十三: SaaS系统体系架构
- MapReduce的作业流程以及新一代MapReduce——YARN
- 分布式架构体系 - 自主研发思路介绍
- linux arch目录下处理器体系架构介绍
- 【转】淘宝开放平台开发指南之架构组件体系介绍
- hadoop2.6.0理论:hdfs、yarn、mapreduce的架构
- Spark-Yarn架构介绍
- 大型网站技术架构(二):架构体系的技术介绍
- YARN:下一代MapReduce的架构
- 大快城市智慧停车管理系统架构体系介绍
- HDFS简介,YARN、MapReduce原理介绍
- ARM裸机之体系架构介绍一
- Android开发之Android体系架构介绍