Hadoop与MapReduce厦门大学数据库室课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Hadoop与MapReduce厦门大学数据库室课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Hadoop MapReduce 厦门大学 数据库 课件
- 资源描述:
-
1、MapReduce编程简介报告人:蔡珉星厦大数据库实验室2014-07-12遇到的问题遇到的问题目录Hadoop与MapReduceMapReduce编程MapReduce执行MapReduce实例Part 1Hadoop与MapReduce-Hadoop简介:Hadoop是一个分布式系统基础架构,由Apache基金会所开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序,并且可以方便的利用集群来提供强大的运算和存储能力。Hadoop设计:Hadoop的框架最核心的设计:HDFS和MapReduce。HDFS为海量的数据提供了存储;MapReduce为存储的数据提供了计算。Hadoop
2、与MapReduce-Hadoop优点:可靠:数据冗余存储,能对失败的节点能重新分布处理;高效:并行处理,可伸缩,能处理PB级数据;成本低:依赖于廉价服务器;运行于Linux平台:Hadoop带有用Java语言编写的框架,适合于Linux;支持多种语言:支持C+,Python等语言。Hadoop与MapReduce的关系:04年Google发表论文介绍了MapReduce,MapReduce是一种编程模型,可用于大规模数据集。Nutch(开源网络搜索项目)使用了MapReduce,后来Nutch项目独立出来,成为Hadoop。Hadoop是一个分布式平台,其组成包括了MapReduce。Had
3、oop与MapReduce-Hadoop与MapReduceHadoop体系结构体系结构-Hadoop与MapReduceHDFS集群集群 一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作;集群中的DataNode管理存储的数据Part 2MapReduce编程MapReduce编程MapReduce 分布式并行计算模型-MapReduce极大的简化了分布式并行开发,隐藏了复杂的分布式开发细节,而将运行于大规模集群上的并行计算过程高度地抽象到两个函数:Map(映射)和Reduce(规约)。M
4、apReduce编程MapReduce的编程思想 分而治之-大数据计算任务子任务子任务子任务子任务任务划分计算结果结果合并MapReduce编程MapReduce可解决哪些算法问题-MapReduce待处理的数据集可以分解成许多小的数据集,而且每一个小数据都可以完全并行地进行处理,因此不能解决不可分拆的计算任务,或者相互间有依赖关系任务,如Fibonacci函数:Fk+2=Fk+Fk+1 MapReduce可解决的基本算法:各种全局数据相关性小、能适当划分数据的计算任务,如分布式排序关系代数操作 如:选择,投影,求交集、并集,连接,成组,聚合矩阵向量相乘、矩阵相乘词频统计(word count
5、)文档倒排索引MapReduce编程MapReduce可解决哪些算法问题-可解决的复杂算法:Web搜索引擎 网页爬取、网页排序、搜索算法Web访问日志分析 分析和挖掘用户在Web上的行为数据/文本统计分析 如专利文献引用分析和统计图算法 并行化宽度优先搜索(最短路径问题)机器学习数据挖掘MapReduce编程MapReduce的设计思想 借鉴函数式编程-函数式设计语言Lisp:函数式程序设计(functional programming)语言Lisp是一种列表处理言(List processing),是一种应用于人工智能处理的符号式语言Lisp定义了可对列表元素进行整体处理的各种操作 如:(a
6、dd#(1 3 3 4)#(6 3 2 1)将产生结果:#(7 6 5 5)Lisp中也提供了类似于Map和Reduce的操作 如:(map vector#+#(1 2 3 4 5)#(10 11 12 13 14)通过定义加法map运算将2个向量相加产生结果#(11 13 15 17 19)(reduce#+#(11 13 15 17 19)通过加法归并产生累加结果75MapReduce定义了Map和Reduce两个抽象的编程接口,由用户编程实现。Map:对一组数据元素进行某种重复式的处理Reduce:对Map的中间结果进行某种进一步的结果整理MapReduce编程Map端-map:(k1,
7、v1)list(k2,v2)输入:键值对(k1,v1)表示的数据处理:文档数据记录(如文本文件中的行,或数据表格中的行)将以“键值对”形式传入map函数;map函数将处理这些键值对,并以另一种键值对形式输出处理的一组键值对中间结果list(k2,v2)输出键值对(k2,v2)表示的一组中间数据备注:list(k2,v2)表示有一个或多个键值对组成的列表MapReduce编程Reduce端-reduce:(k2,list(v2)list(k3,v3)输入:由map输出的一组键值对list(k2,v2)将被进行合并处理,同样主键下的不同数值合并会到一个list(v2)中,故reduce的输入为(k
展开阅读全文