下一代的mapreduce-YARN
在hadoop0.23的时候,mapreduce经历了一次彻底的检修,现在我们有了第二代的mapreduce-YARN。
yarn设计的基本理念是:把jobTracker的两个基本功能分开:资源管理和工作调度分为几个分开的daemon。理念是拥有一个全局的Resource Manager,每一个应用都分配一个application master。每一个应用都是一个单独的mapreduce job或者工作的循环。
Resource Manager和每个节点的slave-Node Manager,从数据计算框架中来看。RM来统筹分配整个系统中所有应用的资源。
每个应用的AM实际上是:框架独有的资源库,用于和RM交互沟通资源处理,和NM一起执行运算,监控任务。
RM有两个主要的组件:scheduler和application manager。
scheduler负责分配资源给不同的应用,这些应用有相似的容量限制,队列等等。scheduler并不执行监控跟踪应用的功能,从这种意义上来说,scheduler是纯粹的调度程序。
而且,硬件失败或者应用失败时,scheduler并不保证能够重启。scheduler只是执行调度功能,基于应用对资源的需求和抽象概念上的资源container(包括内存,cpu,硬盘,网络等资源)。
scheduler内嵌的策略-plug-in,负责在不同的队列应用中对集群资源进行分区。现在的map-reduce调度程序比如capacity scheduler和plug-in相似。
AM负责接受提交的工作,和container交互来执行应用独有的application master,提供给application master运行失败后重启的服务。
NodeManager是每个机器上框架的agent,agent负责container,监控资源使用,把信息提交给Resource Manager和scheduler。
每个应用的application master负责和scheduler的资源容器进行交互,追踪运行状况,监控运行成果。