加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSS
您当前的位置:首页 > 教程文章 > NOSQL数据库

MapReduce V1 vs MapRedue V2

时间:2012-05-01 12:24:01  来源:  作者:

1. 首先用户程序(Client Program)提交了一个job,job的信息会发送到Job Tracker中,Job Tracker是Map-reduce框架的中心,他需要与集群中的机器定时通信(heartbeat), 需要管理哪些程序应该跑在哪些机器上,需要管理所有job失败、重启等操作。
2. TaskTracker是Map-reduce集群中每台机器都有的一个部分,他做的事情主要是监视自己所在机器的资源情况(资源的表示是“本机还能起多少个map-task,多少个reduce-task”,每台机器起map/reduce task的上限是在建立集群的时候配置的),另外TaskTracker也会监视当前机器的tasks运行状况。
TaskTracker需要把这些信息通过heartbeat发送给JobTracker,JobTracker会搜集这些信息以给新提交的job分配运行在哪些机器上。上图回形针一样的箭头就是表示消息的发送-接收的过程。
够简单吧?当前的架构这么两句话就概括出来了,不过当你去看代码的时候,发现代码非常的难读,因为常常一个类3000多行,因为一个class做了太多的事情,这样会造成class的任务不清楚。另外,从我的理解来说,上面的设计至少有下面的几个问题,
1. JobTracker是Map-reduce的单点,看起来多多少少让人不爽
2. JobTracker完成了太多的任务,造成了过多的资源消耗,当map-reduce job非常多的时候,会造成很大的内存开销,潜在来说,也增加了很多JobTracker fail的风险
3. 在TaskTracker端,以map/reduce task的数目作为资源的表示过于简单,没有考虑到cpu/内存的占用情况,如果两个大内存消耗的task被调度到了一块,很容易出现OOM
4. 在TaskTracker端,把资源强制划分为map task slot和reduce task slot, 如果当系统中只有map task或者只有reduce task的时候,会造成资源的浪费,也就是前面提过的集群资源利用的问题

MapReduce v1

MapReduce v1

首先User还是User,JobTracker和TaskTracker不见了,取而代之的是ResourceManager, Application Master与Node Manager三个部分。我详细的说一下。
首先Resource Manager是一个中心的服务,它做的事情是调度、启动每一个Job所属的ApplicationMaster、另外监控ApplicationMaster的存在情况。
细心的朋友已经发现少了点什么,对!Job里面所在的task的监控、重启等等内容不见了。这就是ApplicationMaster存在的原因。
上图中的MPI Mast(er)与MR Master就是某一个MPI Job或者MR Job的ApplicationMaster,一定要记住,ApplicationMaster是每一个Job(不是每一种)都有的一个部分,ApplicationMaster可以运行在ResourceManager以外的机器上。老的框架中,JobTracker一个很大的负担就是监控job下的tasks的运行状况,现在,这个部分就扔给ApplicationMaster做了,而ResourceManager中有一个模块叫做ApplicationsMaster,它是监测ApplicationMaster的运行状况,如果出问题,会将其在其他机器上重启。
设计优点一:这个设计大大减小了JobTracker(也就是现在的ResourceManager)的资源消耗,并且让监测每一个Job子任务(tasks)状态的程序分布式化了,更安全、更优美
另外,在新版中,ApplicationMaster是一个可变更的部分,用户可以对不同的编程模型写自己的ApplicationMaster,让更多类型的编程模型能够跑在Hadoop集群中。
设计优点二:能够支持不同的编程模型
设计优点三:对于资源的表示以内存为单位(在目前版本的Yarn中,没有考虑cpu的占用),比之前以剩余slot数目更合理
设计优点四:既然资源表示成内存量,那就没有了之前的map slot/reduce slot分开造成集群资源闲置的尴尬情况了

MapReduce V2

MapReduce V2

参考文献:

http://www.cnblogs.com/LeftNotEasy/archive/2012/02/18/2357738.html

来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
在CentOS下搭建Android 开发环境
在CentOS下搭建Androi
轻松搭建属于自己的Ubuntu发行版
轻松搭建属于自己的Ub
利用SUSE Studio 打造自己的个性化Linux发行版
利用SUSE Studio 打造
那些采用PHP技术的IT大企业
那些采用PHP技术的IT大
相关文章
    无相关信息
栏目更新
栏目热门