YARN/MRv2 中基本术语介绍

标签: 下一代MapReduce Hadoop nextgen-mapreduce yarn | 发表时间:2011-12-27 15:54 | 作者:Dong
出处:http://dongxicheng.org

YARN/MRv2是下一代MapReduce框架(见 Hadoop-0.23.0),该框架完全不同于当前的MapReduce框架,它在扩展性,容错性和通用性等方面更出色,据统计,Yarn有超过150000行代码,完全是重写编写的。本文介绍了YARN/MRv2中基本术语的含义,帮助有兴趣的程序员们对YARN有一个初步的理解。

(1) YARN

下一代MapReduce框架的名称,为了容易记忆,一般称为MRv2(MapReduce version 2)。该框架已经不再是一个传统的MapReduce框架,甚至与MapReduce无关,她是一个通用的运行时框架,用户可以编写自己的计算框架,在该运行环境中运行。用于自己编写的框架作为客户端的一个lib,在运用提交作业时打包即可。该框架为提供了以下几个组件:

<1> 资源管理:包括应用程序管理和机器资源管理

<2> 资源双层调度

<3> 容错性:各个组件均有考虑容错性

<4> 扩展性:可扩展到上万个节点

当前比较有名的计算框架有:

MapReduce:google提出的计算框架,在互联网大规模数据处理方面使用广泛,但它存在缺点,如:不支持DAG作业,迭代式作业等。

Apache Giraph:图算法处理框架,采用BSP模型(bulk-synchronous parallel model),可用于计算pagerank,shared connections, personalization-based popularity等迭代类算法。

Apache HAMA:基于BSP模型的分布式计算框架,可用于大规模科学计算,如矩阵,图算法,网络算法等,受Google’s Pregel启发,但又有所不同,HAMA是个更加通用的框架,不仅仅支持图算法。

Open MPI:这是一个高性能计算函数库,通常在HPC(High Performance Computing)中采用,与MapReduce相比,其性能更高,用户可控性更强,但编程复杂,容错性差,可以说,各有所长,在实际应用中,针对不同该应用会采用MPI或者MapReduce。

HBase :Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,仿照Google Bigtable实现的,近几年逐步的流行,慢慢取代Cassandra了(在Hadoop In China2011上,FaceBook工程师说他们早就放弃Cassandra而改用HBase)。

以上这几个框架各有所长,在一些互联网公司中均会采用,如果分别部署安装这些计算框架过于繁琐,有了YARN后,这些计算框架可统一在YARN环境中部署。目前仅有MapReduce可使用,其他几个在陆续开发中,具体可参考:

(2) ResourceManager

简称“RM”。

MRv2最基本的设计思想是将JobTracker的两个主要功能,即资源管理和作业调度/监控分成两个独立的进程。在该解决方案中包含两个组件:全局的ResourceManager(RM)和与每个应用相关的ApplicationMaster(AM)。这里的“应用”指一个单独的MapReduce作业或者DAG作业。RM和与NodeManager(NM,每个节点一个)共同组成整个数据计算框架。RM是系统中将资源分配给各个应用的最终决策者。AM实际上是一个具体的框架库,它的任务是【与RM协商获取应用所需资源】和【与NM合作,以完成执行和监控task的任务】。

RM有两个组件组成:

调度器(Scheduler)

应用管理器(ApplicationsManager,ASM)

调度器根据容量,队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用。这里的调度器是一个“纯调度器”,因为它不再负责监控或者跟踪应用的执行状态等,此外,他也不负责重新启动因应用执行失败或者硬件故障而产生的失败任务。调度器仅根据各个应用的资源需求进行调度,这是通过抽象概念“资源容器”完成的,资源容器(Resource Container)将内存,CPU,磁盘,网络等资源封装在一起,从而限定每个任务使用的资源量。

调度器内嵌有策略可插拔的插件,主要负责将集群中得资源分配给多个队列和应用。当前MapReduce的调度器,如Capacity Scheduler和Fair Scheduler,均可作为该插件。

(3)NodeManager

简称“NM”。

NM是每个节点上的框架代理,主要负责启动应用所需的容器,监控资源(内存,CPU,磁盘,网络等)的使用情况并将之汇报给调度器。

一句话:“NM主要用于管理某个节点上的task和资源”。

(4)ApplicationsManager

简称“ASM”。

ASM主要负责接收作业,协商获取第一个容器用于执行AM和提供重启失败AM container的服务。

一句话:“ASM主要用于管理AM”。

(5)ApplicationMaster

简称“AM”。

AM主要负责同调度器协商以获取合适的容器,并跟踪这些容器的状态和监控其进度。

一句话:“AM主要用于管理其对应的应用程序,如MapReduce作业,DAG作业等”。

(6) Container

容器中封装了机器资源,如内存,CPU, 磁盘,网络等,每个任务会被分配一个容器,该任务只能在该容器中执行,并使用该容器封装的资源。

怎样将某个计算框架(MapReduce,HAMA,Giraph)部署到YARN中?

答:需要编写一个ApplicaionMaster。

【参考资料】

(1)雅虎声称对Apache Hadoop的贡献巨大: http://oss.org.cn/?action-viewnews-itemid-62734

(2)The Next Generation of Apache Hadoop MapReduce: http://developer.yahoo.com/blogs/hadoop/posts/2011/02/mapreduce-nextgen/

(3)Next Generation of Apache Hadoop MapReduce – The Scheduler: http://developer.yahoo.com/blogs/hadoop/posts/2011/03/mapreduce-nextgen-scheduler/

(4)Apache Hadoop NextGen MapReduce (YARN): http://hadoop.apache.org/common/docs/r0.23.0/hadoop-yarn/hadoop-yarn-site/YARN.html

原创文章,转载请注明: 转载自 董的博客

本文链接地址: http://dongxicheng.org/mapreduce-nextgen/basic-concepts/


Copyright © 2008
This feed is for personal, non-commercial use only.
The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:
)

相关 [yarn mrv2 术语] 推荐:

YARN/MRv2 中基本术语介绍

- - 董的博客
YARN/MRv2是下一代MapReduce框架(见 Hadoop-0.23.0),该框架完全不同于当前的MapReduce框架,它在扩展性,容错性和通用性等方面更出色,据统计,Yarn有超过150000行代码,完全是重写编写的. 本文介绍了YARN/MRv2中基本术语的含义,帮助有兴趣的程序员们对YARN有一个初步的理解.

YARN/MRv2 NodeManager整体架构

- - 董的博客
Dong | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及 版权声明. 网址: http://dongxicheng.org/mapreduce-nextgen/nodemanager-architecture/. (注:本文章主要翻译自Hortonworks官方博客的 “Apache Hadoop YARN – NodeManager”,红色部分为我的注解.

YARN/MRv2 MRAppMaster深入剖析—概述

- - 董的博客
Dong | 新浪微博: 西成懂 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及 版权声明. 网址: http://dongxicheng.org/mapreduce-nextgen/yarn-mrappmaster-introduction/. 1. 什么是MRAppMaster.

文章: Arun Murthy谈Apache YARN

- - InfoQ cn
Apache Hadoop YARN是一种新的Hadoop资源管理器,前不久被提升为高层次的Hadoop子项目. InfoQ有幸在Hortonworks与YARN的创始人和架构师Arun Murthy进行了讨论. 黑客马拉松•杭州 12月15-16日-Hacking Different,名额有限,请速报名.

一文精通 Flink on YARN

- - IT瘾-dev
本文主要是讲解flink on yarn的部署过程,然后yarn-session的基本原理,如何启动多个yarn-session的话如何部署应用到指定的yarn-session上,然后是用户jar的管理配置及故障恢复相关的参数. flink on yarn的整个交互过程图,如下:. 要使得flink运行于yarn上,flink要能找到hadoop配置,因为要连接到yarn的resourcemanager和hdfs.

基于Hadoop datajoin包开发Reduce join及针对MRV2优化

- - 开源软件 - ITeye博客
编写不易,转载请注明(http://shihlei.iteye.com/blog/2263757).         最近项目,需要对两个文件进行连接查询,从文件2中提取在文件1中选线id的记录. 主要问题:两个文件都很大【 文件1:1亿记录 ; 文件2:8亿记录 】 . 方案1:Map启动将文件1表示读取bloomfilter,map处理文件2,发现存在即输出.

Yarn(MR2)上的应用汇总

- - BlogJava-首页技术区
Yarn做为hadoop下一代集群资源管理和调度平台, 其上能支持多种计算框架, 本文就简要介绍一下这些计算框架.. 首先是大家熟悉的mapreduce, 在MR2之前, hadoop包括HDFS和mapreduce, 做为hadoop上唯一的分布式计算框架, 其优点是用户可以很方便的编写分布式计算程序, 并支持许多的应用, 如hive, mahout, pig等.

Hadoop YARN安装部署初探

- - 董的博客
Dong | 新浪微博: 西成懂 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及 版权声明. 网址: http://dongxicheng.org/mapreduce-nextgen/hadoop-yarn-install/. 本文主要介绍了在实验环境下,能使YARN(以CDH4为例,Apache版本安装方法类似)正常工作的最简单的配置部署方法.

YARN 的介绍及实践探索

- - IT瘾-dev
Apache Hadoop YARN:Yet Another Resource Negotiator,另一种资源协调者. Apache Hadoop YARN 是一种新的 Hadoop资源管理器. 它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处.

浅谈Borg/YARN/Mesos/Torca/Corona一类系统

- - 董的博客
Dong | 新浪微博: 西成懂 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及 版权声明. 网址: http://dongxicheng.org/mapreduce-nextgen/borg-yarn-mesos-torca-corona/. Borg(来自Google), YARN(来自Apache,属于Hadoop下面的一个分支,开源), Mesos(来自Twitter,开源), Torca(来自腾讯搜搜), Corona(来自Facebook,开源)一类系统被称为资源统一管理系统或者资源统一调度系统,它们是大数据时代的必然产物.