您的位置:首页 > 运维架构

【hadoop 2学习】Hadoop下一代的MapReduce----YARN

2014-04-13 17:48 447 查看
在hadoop-0.23及现在的版本中,MapReduce经历一个完全的修改。这个被我们称为MapReduce2.0(MRv2)或者YARN。

MRv2的基本思想是拆分JobTracker的两个主要的功能---资源管理和作业调度/监控--为单独的守护进程。想法是有一个全局的资源管理(RM)和每个应用的主应用(AM)。一个应用或者是传统意义上的MapReduce作业中的单个作业或者一个DAG作业。

资源管理器和每一个从结点的结点管理器(NM)组成数据计算框架。资源管理器是仲裁资源系统中的所有应用程序中的最终权威。

每个应用的主应用(AM)实际上是,一个框架具体库,并负责从资源管理器协商资源,并与结点管理器合作执行和监控任务。



资源管理器有两个主要的组件:调度器(Scheduler)和应用管理器(ApplicationsManager)。

调度器负责在各种运行的,受制于计算机容量、队列等约束条件的应用程序之间分配资源。调度器只是纯粹的调度,在某种意义上说,调度器不执行监控或者对应用程序的状态跟踪。它也不能担保重启由于应用程序错误或者硬件错误的错误的任务。调度器执行基于应用的资源请求的调度功能;它这样做是基于一个资源容器(resource Container)的抽象概念,这个容器整合了例如内存、cpu、磁盘和网络等方面的元素。而1.x版本中,仅仅支持内存。

调度器有插件策略,负责在不同队列、应用程序之间分隔集群资源。当前的Map-Reduce调度器,例如Capacity Scheduler、Fair Scheduler会是插件的一些例子。

Capacity Scheduler支持层次队列允许更多可预测的分享集群资源。

应用程序管理器(ApplicationManager)负责接受作业提交,协调第一个容器用于执行特定的Application Master的应用程序,提供Application Master容器失败时的重启服务。

NodeManager是每台主机一个的框架代理,负责容器,监听资源(CPU,内存,硬盘,网络)的使用并报告给Resource Manager/Scheduler(调度器)。

每个应用程序的Application Master负责从调度器协商合适的资源容器,跟踪应用程序的状态和监控运行情况。

MRv2/YARN包含了对之前稳定版本(hadoop-0.20.205)的API兼容性,也就是所有的MapReduce作业不需要做任何修改仅仅重新编译就可在MRv2/YARN上运行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: