Hadoop与MapReduce-厦门大学数据库室课件_第1页
Hadoop与MapReduce-厦门大学数据库室课件_第2页
Hadoop与MapReduce-厦门大学数据库室课件_第3页
Hadoop与MapReduce-厦门大学数据库室课件_第4页
Hadoop与MapReduce-厦门大学数据库室课件_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MapReduce编程简介报告人:蔡珉星厦大数据库实验室2014-07-12MapReduce报告人:蔡珉星1遇到的问题目录Hadoop与MapReduceMapReduce编程MapReduce执行MapReduce实例遇到的问题目录Hadoop与MapReduce2Part1Hadoop与MapReducePart1Hadoop与MapReduce3----

----

----

------------------------------------------Hadoop简介:Hadoop是一个分布式系统基础架构,由Apache基金会所开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序,并且可以方便的利用集群来提供强大的运算和存储能力。Hadoop设计:

Hadoop的框架最核心的设计:HDFS和MapReduce。HDFS为海量的数据提供了存储;MapReduce为存储的数据提供了计算。Hadoop与MapReduce---------------4----

----

----

------------------------------------------Hadoop优点:可靠:数据冗余存储,能对失败的节点能重新分布处理;高效:并行处理,可伸缩,能处理PB级数据;成本低:依赖于廉价服务器;运行于Linux平台:Hadoop带有用Java语言编写的框架,适合于Linux;支持多种语言:支持C++,Python等语言。Hadoop与MapReduce的关系:

04年Google发表论文介绍了MapReduce,MapReduce是一种编程模型,可用于大规模数据集。Nutch(开源网络搜索项目)使用了MapReduce,后来Nutch项目独立出来,成为Hadoop。Hadoop是一个分布式平台,其组成包括了MapReduce。Hadoop与MapReduce---------------5----

----

----

------------------------------------------Hadoop与MapReduceHadoop体系结构---------------6----

----

----

------------------------------------------Hadoop与MapReduceHDFS集群一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作;集群中的DataNode管理存储的数据---------------7Part2MapReduce编程Part2MapReduce编程8MapReduce编程MapReduce

–分布式并行计算模型----

----

----

-------------------------------

MapReduce极大的简化了分布式并行开发,隐藏了复杂的分布式开发细节,而将运行于大规模集群上的并行计算过程高度地抽象到两个函数:Map(映射)和Reduce(规约)。MapReduce编程MapReduce–分布式并行计算9MapReduce编程MapReduce的编程思想–分而治之----

----

----

-------------------------------大数据计算任务子任务子任务子任务子任务……任务划分计算结果结果合并MapReduce编程MapReduce的编程思想–分而10MapReduce编程MapReduce可解决哪些算法问题----

----

----

-------------------------------MapReduce待处理的数据集可以分解成许多小的数据集,而且每一个小数据都可以完全并行地进行处理,因此不能解决不可分拆的计算任务,或者相互间有依赖关系任务,如Fibonacci函数:Fk+2=Fk+Fk+1

MapReduce可解决的基本算法:各种全局数据相关性小、能适当划分数据的计算任务,如分布式排序关系代数操作如:选择,投影,求交集、并集,连接,成组,聚合…矩阵向量相乘、矩阵相乘词频统计(wordcount)文档倒排索引……MapReduce编程MapReduce可解决哪些算法问题-11MapReduce编程MapReduce可解决哪些算法问题----

----

----

-------------------------------可解决的复杂算法:Web搜索引擎网页爬取、网页排序、搜索算法Web访问日志分析分析和挖掘用户在Web上的行为数据/文本统计分析如专利文献引用分析和统计图算法并行化宽度优先搜索(最短路径问题)机器学习数据挖掘MapReduce编程MapReduce可解决哪些算法问题-12MapReduce编程MapReduce的设计思想–借鉴函数式编程----

----

----

-------------------------------函数式设计语言Lisp:函数式程序设计(functionalprogramming)语言Lisp是一种列表处理言(Listprocessing),是一种应用于人工智能处理的符号式语言Lisp定义了可对列表元素进行整体处理的各种操作

如:(add#(1334)#(6321))将产生结果:#(7655)Lisp中也提供了类似于Map和Reduce的操作如:(map‘vector#+#(12345)#(1011121314))

通过定义加法map运算将2个向量相加产生结果#(1113151719)

(reduce#’+#(1113151719))通过加法归并产生累加结果75MapReduce定义了Map和Reduce两个抽象的编程接口,由用户编程实现。Map:对一组数据元素进行某种重复式的处理Reduce:对Map的中间结果进行某种进一步的结果整理MapReduce编程MapReduce的设计思想–借鉴13MapReduce编程Map端----

----

----

-------------------------------map:(k1,v1)→list(k2,v2)输入:键值对(k1,v1)表示的数据处理:文档数据记录(如文本文件中的行,或数据表格中的行)将以“键值对”形式传入map函数;map函数将处理这些键值对,并以另一种键值对形式输出处理的一组键值对中间结果list(k2,v2)输出键值对(k2,v2)表示的一组中间数据备注:list(k2,v2)表示有一个或多个键值对组成的列表MapReduce编程Map端--------14MapReduce编程Reduce端----

----

----

-------------------------------reduce:(k2,list(v2))→list(k3,v3)输入:由map输出的一组键值对list(k2,v2)将被进行合并处理,同样主键下的不同数值合并会到一个list(v2)中,故reduce的输入为(k2,list(v2))。

处理:对传入的中间结果列表数据进行某种整理或进一步的处理,并产生最终的某种形式的结果输出list(k3,v3)。输出:最终输出结果list(k3,v3)。MapReduce编程Reduce端------15MapReduce编程基于Map和Reduce的并行计算模型----

----

----

-------------------------------各个map函数对所划分的数据并行处理,从不同的输入数据产生不同的中间结果输出;各个reduce各自并行计算,各自负责处理不同的中间结果数据集合;进行reduce处理之前,须等到所有的map函数做完,并且在进入reduce前会对map的中间结果数据进行整理(Shuffle),保证将map的结果发送给对应的reduce;最终汇总所有reduce的输出结果即可获得最终结果。牢记:MapReduce编程基于Map和Reduce的并行计算模型16Part3MapReduce执行Part3MapReduce执行17----

----

----

------------------------------------------MapReduce执行MapReduce的体系结构MapReduce框架是由一个单独运行在主节点上的JobTracker和运行在每个集群从节点上的TaskTracker共同组成的。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前失败的任务;---------------18MapReduce执行MapReduce执行19Part3MapReduce实例Part3MapReduce实例20MapReduce实例单词统计WordCount----

----

----

-------------------------------问题描述:统计文本中所出现单词的次数解决思路:需符合Map、Reduce各自的输入、输出格式。Map端:输入为(k1,v1),以文本行号为k1,以行内容为v1输出为list(k2,v2),每有一个单词就输出一个(word,1)Reduce端:输入为(k2,list(v2)),将list(v2)中所有数字相加即可得到单词次数输出为list(k3,v3),即最终的结果:(单词,单词次数)MapReduce实例单词统计WordCount---21MapReduce实例单词统计WordCount----

----

----

-------------------------------Map的执行MapReduce实例单词统计WordCount---22MapReduce实例单词统计WordCount

Java版----

----

----

-------------------------------Map函数MapReduce实例单词统计WordCount–Ja23MapReduce实例单词统计WordCount----

----

----

-------------------------------Reduce的执行MapReduce实例单词统计WordCount---24MapReduce实例单词统计WordCount

Java版----

----

----

-------------------------------Reduce函数MapReduce实例单词统计WordCount–Ja25MapReduce实例单词统计WordCount

Python版----

----

----

-------------------------------Mapper.py文件MapReduce实例单词统计WordCount–Py26MapReduce实例单词统计WordCount

Python版----

----

----

-------------------------------Reducer.py文件MapReduce实例单词统计WordCount–Py27MapReduce实例最高气象温度----

----

----

-------------------------------问题描述:

《Hadoop权威指南》中的例子,给出气象站历年每天的数据,要提取出每年的最高气温。数据示例:

0067011990999991950051507004…..99999N9+00221+99999…解决思路:Map端:输入为(k1,v1):(行号,内容)输出为list(k2,v2):(年份,温度),例如(1950,22)Reduce端:输入为(k2,list(v2):如(1950,[22,-11]),对list(v2)排序可得到高气温输出为list(k3,v3),即最终的结果:(年份,最高气温)MapReduce实例最高气象温度-------28MapReduce实例单词统计WordCount

Java版----

----

----

-------------------------------Map函数MapReduce实例单词统计WordCount–Ja29MapReduce实例单词统计WordCount

Java版----

----

----

-------------------------------Reduce函数MapReduce实例单词统计WordCount–Ja30MapReduce实例文档倒排索引算法----

----

----

-------------------------------算法描述:

InvertedIndex(倒排索引)是目前几乎所有支持全文检索的搜索引擎都要依赖的一个数据结构。基于索引结构,给出一个词(term),能取得含有这个term的文档列表(thelistofdocuments)。解决思路:还是从Map、Reduce的输入输出着手。MapReduce实例文档倒排索引算法------31MapReduce实例文档倒排索引算法----

----

----

-------------------------------搜索:fish

doc1,doc2red

doc2,doc3redfish

doc2doc1:onefishtwofishdoc2:redfishbluefishdoc3:oneredbird倒排索引:one:doc1,doc3fish:doc1,doc2two:doc1red:doc2,doc3blue:doc2bird:doc3Map:输入(文档名+行号,内容);输出list(单词,文档名)Reduce:输出(单词,list(文档名));输出list(单词,文档列表)MapReduce实例文档倒排索引算法------32MapReduce实例文档倒排索引算法-

Map端----

----

----

-------------------

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论