YARN/MRv2 中基本术语介绍
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可使用,其他几个在陆续开发中,具体可参考:
- Apache Hadoop MapReduce, of course! – https://issues.apache.org/jira/browse/MAPREDUCE-279
- Generic Co-Processors for Apache HBase – https://issues.apache.org/jira/browse/HBASE-4047
- Apache HBasedeployment using YARN – https://issues.apache.org/jira/browse/HBASE-4329
(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
转载自董的博客
YARN/MRv2 中基本术语介绍的更多相关文章
- Solr术语介绍:SolrCloud,单机Solr,Collection,Shard,Replica,Core之间的关系
Solr有一堆让人发晕的术语如:collections,shards,replicas,cores,config sets. 在了解这些术语之前需要先做做如下功课: 1)什么是倒排索引? 2)搜索引擎 ...
- Spark on YARN两种运行模式介绍
本文出自:Spark on YARN两种运行模式介绍http://www.aboutyun.com/thread-12294-1-1.html(出处: about云开发) 问题导读 1.Spark ...
- 在HDInsight中的Hadoop介绍
在HDInsight中的Hadoop介绍 概览 Azure的HDInsight是,部署和规定的Apache™Hadoop®集群在云中,提供用于管理,分析和大数据报告软件框架中的服务. 大数据 数据被描 ...
- AutoMapper之ABP项目中的使用介绍
最近在研究ABP项目,昨天写了Castle Windsor常用介绍以及其在ABP项目的应用介绍 欢迎各位拍砖,有关ABP的介绍请看阳光铭睿 博客 AutoMapper只要用来数据转换,在园里已经有很多 ...
- iOS开发UI篇—iPad开发中得modal介绍
iOS开发UI篇—iPad开发中得modal介绍 一.简单介绍 说明1: 在iPhone开发中,Modal是一种常见的切换控制器的方式 默认是从屏幕底部往上弹出,直到完全盖住后面的内容为止 说明2: ...
- objective-c 中的关联介绍
objective-c 中的关联介绍 转载请注明CSDN博客上的出处: http://blog.csdn.net/daiyibo123/article/details/46471993 如何设置关联 ...
- Oracle EBS Web ADI 中的术语
Oracle EBS Web ADI 中的术语 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 异步调用异步调用是这样子的,和引入接口表中的数 ...
- ORACLE 中的 锁 介绍
ORACLE 中的 锁 介绍 Oracle数据库支持多个用户同时与数据库进行交互,每个用户都可以同时运行自己的事务,从而也需要对并发访问进行控制.Oracle也是用“锁”的机制来防止各个事务之间的相互 ...
- Android中Snackbar的介绍以及使用
Android中Snackbar的介绍以及使用 介绍 Snackbar可以说是Toast的升级版,不仅有显示信息的功能,还可以添加一个Action,实现点击功能,可以右滑删除. 效果图 Snackba ...
随机推荐
- datatable导出到Word / Excel / PDF / HTML .NET
原文发布时间为:2011-01-21 -- 来源于本人的百度文章 [由搬家工具导入] IEnumerable - DataTable Export to Word / Excel / PDF / HT ...
- LeetCode OJ-- Insertion Sort List **
https://oj.leetcode.com/problems/insertion-sort-list/ 链表实现插入排序 首先插入排序是指: a b c d e g m 对b也就是第二个位置选做元 ...
- iOS数组去重的方法,超级简单
//最近新发现的一个数组去重,用不着循环,一句代码搞定 //去除数组中重复的 NSArray *oldArr = @[@"1",@"2",@"3&qu ...
- Cryptography I 学习笔记 --- 总结
在b站上大概的看完了Dan Boneh的密码学,对现代密码学总算有了一个粗浅的认识. 总算能在纸上手写RSA公式并且证明之了,蛤蛤. 总体的感触就是,现代密码学是一个非常博大精深的体系,我等程序员最重 ...
- 对动态规划(Dynamic Programming)的理解:从穷举开始(转)
转自:http://janfan.cn/chinese/2015/01/21/dynamic-programming.html 动态规划(Dynamic Programming,以下简称dp)是算法设 ...
- BZOJ2748(DP)
非常简单的DP题.类似背包的操作,按照音量改变值进行状态转移即可. #include <bits/stdc++.h> using namespace std; #define REP(i, ...
- jvm 简单描述
java零基础入门-面向对象篇(一) 基础类型和引用类型 友情提示:本章开始可能会有部分较深入的内容,不说又不行,说了又很难解释清楚,因为里面的技术细节实在太多太复杂,所以我会屏蔽部分技术细节,只展示 ...
- [SPOJ7001]VLATTICE - Visible Lattice Points
题目大意: $q(q\leq50)$组询问,对于给定的$n(n\leq10^7)$,求$\displaystyle\sum_{i=0}^n\sum_{j=0}^n\sum_{k=0}^n[\gcd(i ...
- java反射和代理
这一篇我们说说反射和动态代理,为什么这两个要一起说呢?因为动态代理中会用到反射,而且java中反射的用处太多了,基本上无处不在,而且功能十分强大: 1.反射简介 反射是什么呢?一般都是很专业的说法:在 ...
- (持续集成)win7上部署Jenkins+MSBuild+Svn+SonarQube+SonarQube Scanner for MSBuild (一)
一.Jenkins介绍 jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的”自动化”编译.打包.分发部署.jenkins可以很好的支持各种语言(比如:java ...