Hadoop0.23.0初探7—使用Yarn构建属于自己的编程模型

五月 10th, 2012 by klose | 1 Comment | Filed in mapreduce, 海量数据存储与处理

一直闲置了很久的Hadoop-0.23.0初探系统文章,终于又回来了.Binos还在继续。 Hadoop0.23中将Yarn作为底层资源管理平台,使用Application Master与RM交互实现了作业逻辑与资源管理的分离,让一个分布式平台可以同时支持不同的作业逻辑,解决了单一MapReduce编程模型局限性、及扩展性的问题。然而,Yarn是如何支持MapReduce编程模型;它与之前版本的Hadoop运行时环境有何区别;Yarn提供了哪些特殊的功能,辅助设计人员能够快速开发满足不同需求的数据处理框架。通过对于这些问题的解读,能够让我们更加深入理解Yarn的架构和设计的初衷,也为用户提供了为应用定制编程模型的方法。 本文会首先介绍Yarn上如何支持MapReduce编程模型,然后再阐述在Yarn上构建的编程模型和运行时环境的方法,最后总结使用Yarn构建分布式系统的一些高级特性。 Yarn支持MapRed

Tags:

Hadoop0.23.0初探6—MapReduce、NM、RM状态转移图

一月 5th, 2012 by klose | No Comments | Filed in mapreduce

1、ResourceManager状态转移图 包括RMNode、RMApp、RMAppAttempt、RMContainer 2、NodeManager状态转移图 包括Application、Container、LocalizedResource 3、MapReduce作业状态转移图 包括三部分:Job、Task、TaskAttempt ps:如果转载请添加源地址http://blog.sina.com.cn/s/blog_4a1f59bf01011mgh.html、需要原图或者愿意一起阅读Hadoop0.23的源码,并愿意与他人分享,联系方式如下。 From Binospace, post Hadoop0.23.0初探6—MapReduce、NM、RM状态转移图 文章的脚注信息由WordPress的wp-posturl插件自动生成

Hadoop0.23.0初探5—RM、NM与AM源码分析

十二月 19th, 2011 by klose | 评论关闭 | Filed in mapreduce

Hadoop0.23.0 RM-NM-AM源码级分析 缩写词 NM:NodeManager RM:ResourceManager AM: ApplicationManager   表格1 ResourceManager的服务 父类或接口 实现类 功能 Dispatcher AsyncDispatcher 转交各种事件到不同的处理窗口,需要注册事件与处理类的绑定。(线程级) AbstractLiveLiness ContainerAllocationExpirer 监控Containter是否到期 AbstractLiveLiness AMLivelinessMonitor 监控每一个App的工作状态 AbstractService/ResourceTracker ResourceTrackerService 负责NM的注册以及与NM保持心跳 AbstractService/ClientRMProtocol ClientRMService 连接到RM的客户端,client与RM之间的交互。 AbstractService/ NodeStatusUpdater NodeStatusUpdaterImpl 监控节点状态更新的情 AbstractLivelinessMonitor NMLivelinessMonitor 监

Hadoop0.23.0初探4—让你的第一个YARN MapReduce跑起来

十二月 15th, 2011 by klose | No Comments | Filed in mapreduce

前言 klose的Hadoop0.23.0初探的系列文章的前三篇分别介绍了:Hadoop的变迁的前因后果、HDFS Federation的配置、以及HDFS的NN、SNN、BN和HA之间的关系。第四篇为文章稍微减负以下,主要介绍Yarn的部署,以及跑第一个HelloWorld(MapReduce wordcount)。 YARN框架介绍 ResourceManager负责作业与资源的调度。接收JobSubmitter提交的作业,按照作业的上下文(Context)信息,以及从NodeManager收集来的状态信息,启动调度过程,分配一个Container作为App Mstr。 NodeManager负责Container状态的维护,并向RM保持心跳。 App Mstr负责一个Job生命周期内的所有工作。如果这里的App是MR App,那么这里的App Mstr相当于只负责一个Job的JobTracker。 Container是YARN为了将来作资源隔离而提出的一个框架。这一点应该借鉴了Mesos的工作(参考我的相关文章),只是目

让你的MapReduce SQL引擎加速 —- Google-Tenzing下的那些Tricks

十二月 8th, 2011 by klose | No Comments | Filed in mapreduce

让你的MapReduce SQL引擎加速             —- Google-Tenzing下的那些Tricks Tenzing: 在Google-MapReduce计算框架之上实现对SQL的支持,Tenzing是SQL engine for MapReduce framework。 Motivation: 分布式数据库提供的SQL查询的不足: 1)节点扩展的问题 2)加载数据造成整个系统服务的抖动 3)传统SQL屏蔽了应用人员直接访问的数据的接口。然而,复杂的数据分析需要分析人员设计操作数据的程序,单一的SQL已经不再满足需求。 Target: 1)扩展性强 2)容错性较强 3)性能好,可与当前的MapReduce类SQL执行引擎一比高下(Hive, Pig) 4) 较高的ETL(Extract Transform and Load)效率 5)提供全面的SQL特性和一些高级操作特性,为高级用户暴露更多接口。 Architecture:   Tricks: (1)Hash aggregation 使用Hashtable来

Hadoop0.23.0初探2—HDFS Federation部署

十二月 1st, 2011 by klose | No Comments | Filed in mapreduce, 海量数据存储与处理

Hadoop的目录文件结构: . |– LICENSE.txt |– NOTICE.txt |– README.txt |– bin |– conf |– etc |– export_hadoop.sh |– hadoop-0.23.0-gridmix.jar |– hadoop-0.23.0-streaming.jar |– hadoop-mapreduce-0.23.0-sources.jar |– hadoop-mapreduce-0.23.0.jar |– hadoop-mapreduce-examples-0.23.0-sources.jar |– hadoop-mapreduce-examples-0.23.0.jar |– hadoop-mapreduce-test-0.23.0-sources.jar |– hadoop-mapreduce-test-0.23.0.jar |– hadoop-mapreduce-tools-0.23.0-sources.jar |– hadoop-mapreduce-tools-0.23.0.jar |– lib |– libexec |– logs |– modules |– sbin `̵

Tags: , , ,

Hadoop0.23.0初探1—前因后果

十一月 30th, 2011 by klose | No Comments | Filed in mapreduce

最近Hadoop社区最火热的事情莫过于Hortonworks公布了Hadoop最新版本(0.23.0),它标志着Hadoop新时代的到来。本文作为系列文章的第一篇,将结合Hadoop-0.20.*的特点,以及Hadoop核心理念,分析Hadoop新版本的特征。 1、Hadoop 0.20.*的局限性 HDFS单NameNode的不足     1)扩展性问题。可以随着数据量进行水平扩展,而元数据服务器不能扩展。 2)随着文件数目的增长,元数据服务器的压力变大。据统计,2.5亿个文件在NameNode中Namespace占据  的大概64GB的内存空间。 3)文件操作的吞吐率受到单个元数据服务器的限制。目前,Hadoop 0.20.*版本可以达到120k readops/sec,6000 writeops/sec. 4)隔离性的问题。0.20.*版本中,一个NameNode对应着唯一的Namespace,所有文件、应用、用户公用同一的名字空间。存在访问权限控制的问题,不利于在HDFS在

在Hadoop上支持增量计算

十一月 9th, 2011 by klose | No Comments | Filed in mapreduce

Socc2011上有一篇文章值得Hadoop粉丝们关注,”Incoop: MapReduce for Incremental Computations“.Hadoop-MapReduce在海量数据批处理的优势得到广泛的发挥,很多应用随着数据规模的膨胀,悄然转移到Hadoop平台。然而,一个事情在发展到一定规模之后,总会涌现出新的问题或者挑战,例如HDFS单点故障、Hadoop-MapReduce与运行时环境紧耦合、Hadoop资源利用率不高、Shuffle阶段的网络瓶颈等。这些问题在从体系结构的角度上尝试对于Hadoop系统的优化。听说Hadoop2.0新时代也在内部如火如荼地进行着。在应用层面上,Pig、Hive在MapReduce之上将常用的问题抽取出来,提供给上层的用户使用,让MapReduce向SQL的道路迈进。然而,在众多应用中,有些应用需要反复地进行MapReduce处理海量数据,而当这种数据如果基于数据累加或者更新的操作时,增量计

构建Hadoop第三者的源码级实施方案

九月 7th, 2011 by klose | No Comments | Filed in mapreduce

Hadoop作为生产系统的一个重要组件,在海量数据处理领域发挥了重要作用。在实践的过程中,发现了如下的问题: 1)定时收集Hadoop的状态信息,及时向集群资源管理系统反馈。目前,Hadoop-0.21.0已经有了Cluster类,可以提供一些作业执行信息参数,另外也有通过JSP的网页获取的方式。具体参见http://blog.sina.com.cn/s/blog_4a1f59bf0100nv03.html 。 这种方式有一个问题是,接口固定,不易在功能上扩展。 2)JobTracker分布化。当前JobTracker单节点故障问题,成为了制约Hadoop执行作业规模、和节点扩展性的一个重要瓶颈。因此,如果能将网络拓扑结构、集群资源负载等因素考虑进去,提供多层的JobTracker的功能,将有助于提高系统的可扩展性,增强高可用性。 3)TaskTracker动态伸缩。Berkeley大学提出的Mesos,从系统资源复用的角度出发,提高了集群

Yahoo持续的Pig/Hadoop(MapReduce)工作流

七月 25th, 2011 by klose | No Comments | Filed in mapreduce

最近在Sigmod2011年大会上,Yahoo公司publish了一篇文章叫做Nova:Continuous Pig/Hadoop Workflows.由于小弟之前一直关注MapReduce工作流的优化,而且毕业开题的方向也和这篇文章的Motivation有些相近,就抽时间研读了一下。 Nova这篇文章是Christopher在Yahoo研究院做的一项工作,Chris长期钻研MapReduce工作流,之前大名鼎鼎的Pig 就是出于此人,还做了很多关于Pig上的优化工作。他的主页上publication和相关经历,在学术界(Stanford、CMU、Berkeley)以及工业界Yahoo都有很大的影响力。 Nova是一个数据流管理器,支持有状态的增量数据计算模式。文章的题目是Continuous,在写的Blog的名字的时候,我一直想不到一个非常恰如其分的翻译出来。Continuous在看完整篇文章之后,翻译成流动的可能会更适合一些。 应用需求和背景 在Pig诞生之前,我们要实现