hadoop介绍(感谢sr前辈的建议)

hadoop介绍(感谢sr前辈的建议)

ID:34723185

大小:119.18 KB

页数:19页

时间:2019-03-10

hadoop介绍(感谢sr前辈的建议)_第1页
hadoop介绍(感谢sr前辈的建议)_第2页
hadoop介绍(感谢sr前辈的建议)_第3页
hadoop介绍(感谢sr前辈的建议)_第4页
hadoop介绍(感谢sr前辈的建议)_第5页
资源描述:

《hadoop介绍(感谢sr前辈的建议)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Hadoop平台技术介绍潘司群北京邮电大学计算机学院网络工程专业soulpsq@gmail.com摘要:本文主要介绍了hadoop平台的两个关键技术,分布式文件系统(HDFS)和分布式计算系统(map/reduce)。通过介绍其技术演进、核心算法、主要应用场景、所能解决问题以及发展状况等来大致展开文章内容,为今后实践学习相关知识积累了一定的理论基础。我参考了很多文章,但在本文中并没有任何原文抄袭,所有语言都均由笔者自己组织,有部分数据(两到三处)为引用而来也注明了出处。与此同时,一定也会有很多解释欠妥甚至错误的地方,并且有很多原理理解

2、得还很肤浅,无法做出更加深入的解释,这些都希望学长能够给出一些建议,我也希望在今后的实践中能加深对所学理论知识的理解。引言:随着google在文件系统(GFS)、数据库(BigTable)以及并行计算(MapReduce)领域的三大论文的问世,云计算也终于从一个模糊的概念走向了技术的实体化。不过google并没有再接再厉公布其技术细节与核心,于是就催生了hadoop这样一个开源平台的出现。说起hadoop,不得不提一下它的创始人DougCutting,他是著名的全文检索引擎lucene(国内的很多项目都有该技术的影子)和搜索引擎nut

3、ch的发起者,当然它们也都是开源的。正是由于DougCutting等人的之前的工作,才使得我们能够有机会接触并学习到搜索引擎等曾经神秘莫测的技术。总的来说,Hadoop其实就是google技术的开源平台,hadoop的分布式文件系统HDFS、数据库系统Hbase以及分布式计算系统Map/Reduce(这个名都没变···)就是对google的GFS,BigTalbe以及MapReduce的开源实现,在本文中,我主要介绍的是组成Hadoop的最为重要的HDFS和Map/Reduce两项关键技术。一.分布式计算框架Map/ReduceMap

4、/Reduce是一个分布式的编程模型,它源自于函数式的编程思想,函数式编程并不是一种编程语言,也没有固定不变的模式,它很多的时候指的是一种编程的理念,在严格的函数式编程中,函数几乎被用于一切,甚至是最简单的变量计算,但是在实际中,函数式风格的代码往往是作为一部分而为整体程序来服务,有关于函数式编程更详细的内容,推荐阅读参考文章[4]。让我们回到Map/Reduce,顾名思义,MapReduce由两个过程组成,即map(映射)和reduce(规约),并且map在前,reduce在后。让我们先举个简单的例子来解释这两个过程:一维数组M=[

5、1,2,3,4,5]在乘2的条件下映射为[2,4,6,8,10],当继续进行数组元素求和时,则规约为30,整个过程其实就是将∑m[i]*2这样一个运算拆分成了两步来执行。从上面的例子我们了解到,MapReduce是一种先分后合的编程模式,即先将任务拆分成若干子任务,然后子任务分别执行,最后将所有子任务的执行结果进行合并规约得出最终的输出结果(0个或1个最终输出结果),这就是MapReduce编程模式的总体思路,实际运用中将会复杂得多。在讲述具体的实现过程之前,我认为有必要对出现的一些相关术语做一些简单的说明,这样会方便大家顺利地理解后

6、面的内容。Hadoop的MapReduce和Google的MapReduce就如其名基本不变一样(就是前缀公司不同···),框架结构基也本都是一样的,但本着开源就要开得不一般,就要不走寻常路的的出发点,hadoop还是将其中明明一样的东西硬给安了个不一样的名字,可能是因为我最开始读的是Google的文章而先入为主了,导致再去读hadoop的相关文章时,总觉得hadoop的术语命名又冗长又不形象,所以在这里就先把术语统一下,以防以后阅读其他文章时弄乱,我在网上找到了一个术语对照表,觉得还不错,所以就直接拿来主义了哈。中文翻译Google

7、术语Hadoop术语相关解释作业JobJob用户的每一个计算请求,就称为一个作业。作业服务器MasterJobTracker用户提交作业的服务器,同时,它还负责各个作业任务的分配,管理所有的任务服务器任务服务器WorkerTasktrackerGoogle的命名很贴切,就是任劳任怨的工人,负责执行具体的任务任务TaskTask每一个作业都需要拆分开,交由多个服务器来完成,拆分出来的执行单位,就称为任务总算进入了正题,下面就没有什么能妨碍我们去探索MapReducede的秘密了!MapReduce编程模型中的函数接口是无数key/val

8、uepair(键值对),其实现是通过输入的无数key/valuepair的集合输入来产生一个输出key/valuepair的集合作为最终输出结果。MapReduce函数的整个实现流程是:客户端(用户)向系统提交作业,作业

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。