Hadoop MapReduce新一代架构MRv2

MapReducehadoop-0.23中经历了彻底的改变,现在我们称之为MapReduce 2.0(MRv2)或者YARN

MRv2的基本思想是将JobTracker的两个主要功能,资源管理和作业调度/监视的功能拆分为独立的守护进程。设计思想是将MRv1中的JobTracker拆分成了两个独立的服务:一个全局的资源管理器ResourceManager(RM)和每个应用程序特有的ApplicationMaster(AM)。每个应用程序要么是单个作业,要么是DAG作业。

1. ResourceManager

ResourceManager(RM)和每个从节点以及NodeManager(NM)构成了数据计算框架。ResourceManager是系统中所有应用程序资源分配的最终决策者。

ResourceManager有两个主要组件:Scheduler(调度器) 和 ApplicationsManager

1.1 Scheduler

Scheduler根据容量,队列等限制条件将资源分配给各种正在运行的应用程序。Scheduler是’纯调度器’,因为它负责监视或跟踪应用程序的状态。此外,它也不保证会重启由于应用程序错误或硬件故障原因导致失败的任务。Scheduler仅根据应用程序的资源请求来执行调度。它基于’资源容器’(Resource Container)这一抽象概念来实现的,资源容器包括如内存,cpu,磁盘,网络等。

Scheduler是一个可插拔的组件,它负责将集群资源分配给不同队列和应用程序。目前Scheduler支持诸如CapacitySchedulerFairSchedulerCapacityScheduler支持分层队列,以便更可预测地共享群集资源

1.2 ApplicationsManager

ApplicationsManager(ASM)主要负责接受作业提交,协商获取第一个容器来执行应用程序的ApplicationMaster(negotiating the first container for executing the application specific ApplicationMaster),并提供在故障时重新启动ApplicationMaster的服务。

2. NodeManager

NodeManager是每个节点上框架代理,主要负责启动应用所需要的容器,监视它们的资源使用情况(cpu,内存,磁盘,网络),并将其报告给ResourceManagerScheduler

3. ApplicationMaster

事实上,每一个应用程序的ApplicationMaster是一个框架库,负责与Scheduler协商合适的资源容器以及与NodeManager一起跟踪他们的状态并监视进度。

MRV2保持与以前稳定版本(hadoop-1.x)API的兼容性。这意味着所有的Map-Reduce作业仍然可以在MRv2上运行,只需重新编译即可。

原文:http://hadoop.apache.org/docs/r2.4.1/hadoop-yarn/hadoop-yarn-site/YARN.html

您的支持将是我继续写作的动力!