hadoop2.0介绍(二)
2013-11-26 10:04
246 查看
(接上文)
Mapreduce包含三方面的内容:
终端用户使用的API及使用Mapreduce的模型
Mapreduce计算框架,包括map, sort/shuffle/merge 和reduce过程
保证Mapreduce正常进行的基础框架,包括job的运行、资源的管理、调度、同步等
关于Mapreduce1.0的运行的一个经典框架图如下,关于其描述这里不讨论,其中最大的问题大概是jobtracker的负担过重,导致扩展性(目前普遍认为4000个节点是其上限,大概是yahoo的研究结果,其实际部署也到达该数字)、集群的利用效率等方面都不好。
YARN中最根本的变化就是将上图中JobTracker的功能拆分了(对应于新的ResourceManager和ApplicationMaster)。
要了解YARN,首先需要明确几个概念:
ResourceManager(RM):整个系统只有一个RM,它就只管调度方面的事情,并且为集群应用而优化,因而具有很好的性能。RM的一个核心是它的Scheduler。调度包含两个过程,一要搜集各节点的情况;二要根据某种调度策略,分配合适的节点。搜集节点情况是基于一个资源容器(resource container)的概念,该容器包括cpu,disk,network等(目前只用到cpu)
NodeManager(NM):NM是每个节点一个实例,管理每个节点,它触发应用容器(application container),监控节点的资源(cpu/disk等),并向RM报告资源的情况。
ApplicationMaster(AM):AM是每个应用一个实例,它是一个特定的框架接口库,一方面与RM中的Scheduler协商得到resource container,另一方面与NM一起执行和监控各子任务部件,从系统的角度,AM本身也一种container(下图中将它与container画得一样)。
Container:从逻辑上,container可认为是资源的分配容器,它包括hostname,cpu,memory等属性。AM发送ResourceRequest给RM,然后RM分配合适的Container给AM,AM再将此Container提交给它所在节点的NM,NM采用此资源容器运行任务。实际上,Container是一种使用资源的“授权”,AM得到此授权后,在NM的管理下,可以运行任何进程(包括非Java应用,这一点与1.0不同)。YARN可以激发活动的API包括:
在容器内运行进程的命令行
环境变量
本地资源,包括jar,链接库、文件等
安全凭证
将分布式任务的管理分成RM与AM协调进行,有如下的优点:
可扩展性大大提高:实际上,AM承担了大部分监控工作,而它是一个应用级别的局部的东西,这样,AM不会成为任务分配管理的全局瓶颈。
开放性大大提高:AM是一个框架库,用户可以定制开发以支持MPI等非Mapreduce的东西。
当然,这样的架构使得Job的管理成为“用户级”而不是“系统级”的东西,YARN系统应该有足够的保护功能,以防恶意的AM拖垮RM和NM。
下图是官网上的一个MapReduce2.0版图,结合该图,大致说明一下新的流程。
RM不断的搜集Node的情况(从NM得到)
Client向RM提交计算任务。
RM在一个Node上产生一个AM。
AM向RM申请计算资源,RM根据资源状况以及分配策略,分配合适的资源(container)给AM。
AM得到资源后,管理这些资源,完成计算任务
与配置一样,YARN是兼容1.0版Mapreduce应用的
现在有些创业公司,提供免费的开源产品的“包装产品”,其盈利方式在于提供咨询、培训或附加值更高的产品。对Hadoop提供此类包装产品的公司有Hortonworks,cloudera和mapr。
University”的。下图是Hortonworks对Hadoop产品的理解,目前其产品的版本叫HDP 2(Hortonworks Data Platform)。
关于这三家公司的产品其实都可以各写一篇很长的文章,这里就不涉及了。
2. YARN(MapReduce NextGen/MRv2)
这三个名字都在说明一个东西,改进的mapreduce。(注:有些文章中,将YARN与MapReduce分开,认为YARN是MapReduce的基础/支撑,具体的分布式计算的实现依然是MapReduce,这样理解也可以,本文是将它们合在一起介绍。)Mapreduce包含三方面的内容:
终端用户使用的API及使用Mapreduce的模型
Mapreduce计算框架,包括map, sort/shuffle/merge 和reduce过程
保证Mapreduce正常进行的基础框架,包括job的运行、资源的管理、调度、同步等
关于Mapreduce1.0的运行的一个经典框架图如下,关于其描述这里不讨论,其中最大的问题大概是jobtracker的负担过重,导致扩展性(目前普遍认为4000个节点是其上限,大概是yahoo的研究结果,其实际部署也到达该数字)、集群的利用效率等方面都不好。
YARN中最根本的变化就是将上图中JobTracker的功能拆分了(对应于新的ResourceManager和ApplicationMaster)。
要了解YARN,首先需要明确几个概念:
ResourceManager(RM):整个系统只有一个RM,它就只管调度方面的事情,并且为集群应用而优化,因而具有很好的性能。RM的一个核心是它的Scheduler。调度包含两个过程,一要搜集各节点的情况;二要根据某种调度策略,分配合适的节点。搜集节点情况是基于一个资源容器(resource container)的概念,该容器包括cpu,disk,network等(目前只用到cpu)
NodeManager(NM):NM是每个节点一个实例,管理每个节点,它触发应用容器(application container),监控节点的资源(cpu/disk等),并向RM报告资源的情况。
ApplicationMaster(AM):AM是每个应用一个实例,它是一个特定的框架接口库,一方面与RM中的Scheduler协商得到resource container,另一方面与NM一起执行和监控各子任务部件,从系统的角度,AM本身也一种container(下图中将它与container画得一样)。
Container:从逻辑上,container可认为是资源的分配容器,它包括hostname,cpu,memory等属性。AM发送ResourceRequest给RM,然后RM分配合适的Container给AM,AM再将此Container提交给它所在节点的NM,NM采用此资源容器运行任务。实际上,Container是一种使用资源的“授权”,AM得到此授权后,在NM的管理下,可以运行任何进程(包括非Java应用,这一点与1.0不同)。YARN可以激发活动的API包括:
在容器内运行进程的命令行
环境变量
本地资源,包括jar,链接库、文件等
安全凭证
将分布式任务的管理分成RM与AM协调进行,有如下的优点:
可扩展性大大提高:实际上,AM承担了大部分监控工作,而它是一个应用级别的局部的东西,这样,AM不会成为任务分配管理的全局瓶颈。
开放性大大提高:AM是一个框架库,用户可以定制开发以支持MPI等非Mapreduce的东西。
当然,这样的架构使得Job的管理成为“用户级”而不是“系统级”的东西,YARN系统应该有足够的保护功能,以防恶意的AM拖垮RM和NM。
下图是官网上的一个MapReduce2.0版图,结合该图,大致说明一下新的流程。
RM不断的搜集Node的情况(从NM得到)
Client向RM提交计算任务。
RM在一个Node上产生一个AM。
AM向RM申请计算资源,RM根据资源状况以及分配策略,分配合适的资源(container)给AM。
AM得到资源后,管理这些资源,完成计算任务
与配置一样,YARN是兼容1.0版Mapreduce应用的
四、Hadoop系列产品的应用
虽然有各种文档介绍,但真正部署、管理好一个分布式应用也不是一件容易的事情,对开源软件来讲,版本的兼容性,运行的稳定性,都有可能成为一个问题。因此,直接将开源软件拿来作为商业软件,存在比较大的风险。现在有些创业公司,提供免费的开源产品的“包装产品”,其盈利方式在于提供咨询、培训或附加值更高的产品。对Hadoop提供此类包装产品的公司有Hortonworks,cloudera和mapr。
1、Hortonworks
Hortworks成立于2010年,其主要人员是原Yahoo公司(Yahoo是hadoop最主要的支持者)中从事hadoop研发的人员(同时可能是hadoop代码的贡献者),因此Hortonworks的东西基本上就代表了hadoop官方的东西。Hortonworks中所有的产品都是免费的,这是相当好的事情,但它的东西在使用性上较下面介绍的cloudera的东西要稍微差一些。Hortonworks提供的hadoop的版本中有专门在windows平台上用的,这比较特别。由于Hortonworks的准官方性,查资料时,如果Hadoop官网上没有,可以在Hortonworks上查。实际上,Hortonworks非常重视培训(这也是它盈利的一种方式),竟然有一个叫做“HortonworksUniversity”的。下图是Hortonworks对Hadoop产品的理解,目前其产品的版本叫HDP 2(Hortonworks Data Platform)。
2、Cloudera
Cloudera成立于2008年,Cloudera版的hadoop是目前应用最多的版本,但很可惜,并不是所有的Cloudera的产品都免费,Cloudera Enterprise中有些高级应用是收费的。下图是Cloudera对Hadoop产品的理解,目前其产品的版本为CDH 4(Cloudera’s Distribution Including Apache Hadoop)。3、MapR
MapR是另一个Hadoop技术应用公司,看它的官网,你会觉得MapR已经将Hadoop打造得无与伦比,比较可惜的是MapR大部分东西都是不开源的,有点感觉它是只是披了一件”hadoop”的外衣而已,内部东西是它自家的。MapR的产品有M3,M5,M7三个系列,只有M3是全免费的。如果有资金的话,购买M5/M7是一个不错的选择。关于这三家公司的产品其实都可以各写一篇很长的文章,这里就不涉及了。
相关文章推荐
- Hadoop2.0的HA介绍
- hadoop2.0的HA介绍
- Hadoop2.0的HA介绍
- BookKeeper设计介绍及其在Hadoop2.0 Namenode HA方案中的使用分析
- Hadoop1.0存在的问题和Hadoop2.0的介绍
- Hadoop2.0的yarn 的基本的介绍
- hadoop2.0 federation介绍
- Hadoop2.0 Namenode HA实现方案介绍及汇总
- Hadoop2.0的HA介绍
- Hadoop2.0的HA介绍
- Hadoop2.0的HA介绍
- Hadoop2.0的HA介绍
- Apache Hadoop 0.23 MapReduce 2.0 (MRv2 or YARN) 介绍
- Hadoop2.0的HA介绍
- Hadoop2.0的HA介绍 (High Avalability,高可用性)
- hadoop2.0介绍(一)
- Hadoop2.0的HA介绍
- Hadoop2.0的HA介绍
- 基于Server-Sent Event的简单聊天室 Web 2.0时代,即时通信已经成为必不可少的网站功能,那实现Web即时通信的机制有哪些呢?在这门项目课中我们将一一介绍。最后我们将会实现一个基于Server-Sent Event和Flask简单的在线聊天室。
- [RM HA 2] Hadoop 2.0 ResourceManager HA原理