CDH 4.6 Apache Hadoop的下一代mapreduce,yarn
2014-04-06 12:14
507 查看
Mapreduce已经在hadoop-0.23中包含了我们称之为MapReduce 2.0 (MRv2) or YARN的架构。
MRv2的基本思想是将JobTracker分为了两个主要功能,即resource management和job scheduling/monitoring。目的是有全局的ResourceManager (RM),和适用于每个应用的ApplicationMaster
(AM)。每个mr job或DAG job都是一个简单的job。
ResourceManager 以及每个slave的NodeManager组成了数据计算框架。ResourceManager 是统一的在系统应用之间的授权框架。
每个节点的ApplicationMaster 实际上是框架特定的库,目标是协调ResourceManager的资源调配和NodeManager(s)一起来执行任务并监督管理tasks。
ResourceManager 有Scheduler
和ApplicationsManager两个组件。
Scheduler 用来根据容量,队列等的限制来负责为不同的运行applications分配资源。Scheduler
只单纯来调配而不关心监督或跟踪应用状态,并且也不会由于应用或硬件故障而重启失败的tasks。Scheduler 依据应用的资源需求,以及包含内存,cpu,硬盘,网络等情况的resourceContainer 的理论数据来调配功能;而在yarn的第一版近支持内存。
Scheduler 有一个可插入的策略plug-in,负责在不同的各种类型的队列,应用等之间分配集群资源。当前mr schedulers
例如CapacityScheduler ,FairScheduler 就是充当了 plug-in的功能。
CapacityScheduler 支持分层队列来允许集群资源预分配。
ApplicationsManager 负责接收任务提交,协调执行特定任务的指定的ApplicationMaster
的容器,提供重启失败ApplicationMaster 容器的服务。
NodeManager 是每个机器的框架代理来负责容器,监督资源(cpu,内存,硬盘,网络)使用,并且报告给ResourceManager/Scheduler。
每个应用的ApplicationMaster 也有协调队列中的特定的资源容器,跟踪状态,监督进程的功能。
mrv2保持与以前的稳定版本的API兼容(hadoop-0.20.205)。这意味着所有的mr工作不需要改变仍然运行在mrv2的架构上面,只重新编译。
在CDH中,采用mrv1架构的应用和mrv2架构的应用采用不同的jar包,就是基于上面的考虑。
在apache hadoop的不同版本中,支持mrv1或者mrv2,他们的采用的体系架构发生了变化,采用mrv2架构中,必须配置yarn,在这个上面运行mr任务,这个时候体系发生了大的改变,相应的jar包也变化了。
在CDH4.6的结构中,支持mapreduce的两种配置,即1和2,选择不同的架构,选用的jar包也不一样,详细见表,则在设置环境变量的时候,需要根据版本不同,设置不同的环境变量。将HADOOP_MAPRED_HOME指向不同的位置,这里涉及到其他版本的设置,例如hive的选择,因为他是基于不同mapreduce设置的。
如果选择mrv1,则设置HADOOP_MAPRED_HOME=/usr/lib/hadoop-0.20-mapreduce,如果选择mrv2,则设置HADOOP_MAPRED_HOME=/usr/lib/hadoop-mapreduce。
MRv2的基本思想是将JobTracker分为了两个主要功能,即resource management和job scheduling/monitoring。目的是有全局的ResourceManager (RM),和适用于每个应用的ApplicationMaster
(AM)。每个mr job或DAG job都是一个简单的job。
ResourceManager 以及每个slave的NodeManager组成了数据计算框架。ResourceManager 是统一的在系统应用之间的授权框架。
每个节点的ApplicationMaster 实际上是框架特定的库,目标是协调ResourceManager的资源调配和NodeManager(s)一起来执行任务并监督管理tasks。
ResourceManager 有Scheduler
和ApplicationsManager两个组件。
Scheduler 用来根据容量,队列等的限制来负责为不同的运行applications分配资源。Scheduler
只单纯来调配而不关心监督或跟踪应用状态,并且也不会由于应用或硬件故障而重启失败的tasks。Scheduler 依据应用的资源需求,以及包含内存,cpu,硬盘,网络等情况的resourceContainer 的理论数据来调配功能;而在yarn的第一版近支持内存。
Scheduler 有一个可插入的策略plug-in,负责在不同的各种类型的队列,应用等之间分配集群资源。当前mr schedulers
例如CapacityScheduler ,FairScheduler 就是充当了 plug-in的功能。
CapacityScheduler 支持分层队列来允许集群资源预分配。
ApplicationsManager 负责接收任务提交,协调执行特定任务的指定的ApplicationMaster
的容器,提供重启失败ApplicationMaster 容器的服务。
NodeManager 是每个机器的框架代理来负责容器,监督资源(cpu,内存,硬盘,网络)使用,并且报告给ResourceManager/Scheduler。
每个应用的ApplicationMaster 也有协调队列中的特定的资源容器,跟踪状态,监督进程的功能。
mrv2保持与以前的稳定版本的API兼容(hadoop-0.20.205)。这意味着所有的mr工作不需要改变仍然运行在mrv2的架构上面,只重新编译。
在CDH中,采用mrv1架构的应用和mrv2架构的应用采用不同的jar包,就是基于上面的考虑。
在apache hadoop的不同版本中,支持mrv1或者mrv2,他们的采用的体系架构发生了变化,采用mrv2架构中,必须配置yarn,在这个上面运行mr任务,这个时候体系发生了大的改变,相应的jar包也变化了。
在CDH4.6的结构中,支持mapreduce的两种配置,即1和2,选择不同的架构,选用的jar包也不一样,详细见表,则在设置环境变量的时候,需要根据版本不同,设置不同的环境变量。将HADOOP_MAPRED_HOME指向不同的位置,这里涉及到其他版本的设置,例如hive的选择,因为他是基于不同mapreduce设置的。
如果选择mrv1,则设置HADOOP_MAPRED_HOME=/usr/lib/hadoop-0.20-mapreduce,如果选择mrv2,则设置HADOOP_MAPRED_HOME=/usr/lib/hadoop-mapreduce。
Name | MRv1 location | YARN location |
---|---|---|
streaming | /usr/lib/hadoop-0.20-mapreduce/contrib/streaming/ hadoop-streaming-2.0.0-mr1-cdh<version>.jar | /usr/lib/hadoop-mapreduce/ hadoop-streaming.jar |
rumen | N/A | /usr/lib/hadoop-mapreduce/ hadoop-rumen.jar |
hadoop examples | /usr/lib/hadoop-0.20-mapreduce/ hadoop-examples.jar | /usr/lib/hadoop-mapreduce/ hadoop-mapreduce-examples.jar |
distcp v1 | /usr/lib/hadoop-0.20-mapreduce/ hadoop-tools.jar | /usr/lib/hadoop-mapreduce/ hadoop-extras.jar |
distcp v2 | N/A | /usr/lib/hadoop-mapreduce/ hadoop-distcp.jar |
hadoop archives | /usr/lib/hadoop-0.20-mapreduce/ hadoop-tools.jar | /usr/lib/hadoop-mapreduce/ hadoop-archives.jar |
相关文章推荐
- Hadoop-2.2.0中文文档——Apache Hadoop 下一代 MapReduce (YARN)
- YARN Apache Hadoop 的下一代MapReduce
- Apache Hadoop下一代MapReduce框架(YARN)简介 (Apache Hadoop NextGen MapReduce (YARN))
- Apache Hadoop 下一代的MapReduce(YARN)
- 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework
- Apache Hadoop YARN: Moving beyond MapReduce and Batch Processing with Apache Hadoop 2
- Apache Hadoop NextGen MapReduce (YARN) 2.6(翻译自官方)
- org.apache.hadoop.yarn.exceptions.InvalidAuxServiceException: The auxService: mapreduce_shuffle do
- 下一代Apache Hadoop MapReduce框架的架构
- YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework
- 下一代Apache Hadoop MapReduce框架的架构
- 下一代Apache Hadoop MapReduce框架的架构
- 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework
- 【hadoop 2学习】Hadoop下一代的MapReduce----YARN
- [译]下一代的Hadoop Mapreduce – 如何编写YARN应用程序
- Apache Hadoop 0.23 MapReduce 2.0 (MRv2 or YARN) 介绍
- Apache Hadoop NextGen MapReduce (YARN)
- 下一代Apache Hadoop MapReduce框架的架构
- Hadoop 新 MapReduce 框架 Yarn 详解
- MapReduce中碰到数据覆盖现象,org.apache.hadoop.io.Text.getBytes 问题