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

CDH 4.6 Apache Hadoop的下一代mapreduce,yarn

2014-04-06 12:14 447 查看
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。

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



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: