hadoop2.0介绍(二)

(接上文)

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非常重视培训(这也是它盈利的一种方式),竟然有一个叫做“Hortonworks University”的。下图是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是一个不错的选择。

关于这三家公司的产品其实都可以各写一篇很长的文章,这里就不涉及了。



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值