- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
hadoop搜索引擎讲述
Map/Reduce 的名字源于这个模型中的两项核心操作:Map 和 Reduce,实际处理的都是大量像key, value对这样的简单数据类型。在模型中首先对输入的数据进行分割,将分割后的数据分配给 Map 函数,而 Map 把分配到的数据(一般为一组key, vaule对)映射为另外的一组key2, vaule2型中间数据,其映射的规则由一个函数指定;Reduce是对 Map 输出的key2, vaule2型中间数据进行归约并输出最终结果,这个归约的规则也是由一个函数指定。这两项操作的规则是可以由程序设计人员的指定,正是这一点带给了 Map/Reduce 模型巨大的灵活性。(1)首先,用户程序中的 Map Reduce 函数库把输入文件分成 M 块(Hadoop 中每个数据分块大小一般为 64MB,这个可通过参数修改)。然后用户程序在集群中创建多个程序副本,执行处理程序。
(2)在大量的程序副本中有一个比较特殊——主控程序 Master。其余程序副本都是作为 worker 在工作,也即图 2.4 中的 Map0,Map1,Map2 以及 Reduce0 和 Reduce1。总共有 M 个 Map 和 R 个 Reduce 任务。Master 会给空闲的 worker 分配这些任务。 Master 类似于数据管道,通过该管道,中间键值对的存储信息(比如存储区域的大小,位置)可从 Map 传递到 Reduce。此外,Master 具备一些数据结构,存储 worker 的标识和每一个 Map 和 Reduce 任务的状态:空闲、工作中或完成。
(3)在 Map 阶段,Slaves 作为 worker 接受 Master 分配的 Map 任务,读取并解析输入数据分块,以 key/value 键值对形式输出给用户自定义的 Map 函数。Map 函数对输入数据并行处理后同样以键值形式输出,在内存中作临时缓存。
(4)对于缓存的中间键值对,程序会调用分区函数定期执行本地写入操作,同时程序会将中间键值对在本地硬盘的存储位置回传给 Master,由 Master 记录这些位置信息为Reduce 阶段做好准备。
(5)在 Reduce 阶段,Reduce worker 首先获取 Master 传递的中间键值对位置信息,接着调用 RPC(远程过程调用协议)读取 Map worker 方存储的全部中间键值对,再使用中间 key 对这些数据进行排序,使所有有相同 key 值的数据聚集在一起,以达到排序的效果。
(6)Reduce worker 将所有经排序的中间数据传递给用户自定义的 Reduce 函数处理。Reduce 函数同样以键值形式输出操作结果。
(7)在所有 Map 任务和 Reduce任务执行结束时,Master 重新激活用户主程序,代表一次“映射”与“化简”操作执行完毕。
在一次 Map Reduce 操作中,输入的 M 个数据分首先在多台机器上调用 Map 功能函数作并行处理,对应输出的中间文件再传递给 Reduce 功能函数进行化简处理,但是程序不对 Reduce 任务产生的 R 个输出文件进行合并,而是将其作为另一个 Map Reduce 操作的输入或者用另一个分布式应用来处理。
Hadoop 是一个基于 Map/Reduce 的相当成功的分布式计算平台,Map/Reduce 是 Google 的一项重要技术,是一种简化并行计算的编程模型,它让那些没有多少并行计算经验的开发人员也可以开发并行应用。Map/Recuce 可以将被划分成多个小的 Block 的海量检索数据以分布式的方法局部计算,并应用 Map 将他们映射到一个提供 Reduce 的中心上,从而达到快速处理海量数据检索的目的。
分布式文件系统 HDFS(Hadoop Distributed File System)是 Hadoop 的另一重要功能。HDFS 是受 Google 文件系统的启发,建立在大型集群上可靠存储大数据集的文件系统。HDFS 与 Map/Reduce 紧密集成,是 Hadoop 分布式计算的存储基石。它有自己明确的设计目标,那就是支持大的数据文件(大至 T 级),并且这些文件以顺序读取为主,以文件读的高吞吐量为目标。
具体的存取过程如下。
(1)文件写入过程:
? 首先,Client 向 Name Node 发起写入请求;
? Name Node 接收到请求后,根据文件大小和块配置情况将 Client 负责的 Data Node信息返回;
? Client 将文件划分为多个数据块(block),然后将 Name Node 提供的 Data Node 地址信息逐个写入对应的 Data Node 中;
(2)文件读取
您可能关注的文档
最近下载
- 2024年广东省深圳市中考语文试卷(含答案逐题详解).docx
- 2024年海南省海口市龙华区海南华侨中学自主招生地理试题.docx VIP
- 2024全国助理社会工作师职业水平《社会工作实务(初级)》考试典型题题库(含答案).docx VIP
- 2024年版全国助理社会工作师职业水平《社会工作实务(初级)》考试典型题题库.docx VIP
- 重症医学科ECMO理论考核试题及答案.docx VIP
- 2024版全国助理社会工作师职业水平《社会工作实务(初级)》考试典型题题库.docx VIP
- 2024年度全国助理社会工作师职业水平《社会工作实务(初级)》考试典型题题库.docx VIP
- 餐饮行业厨房设备维护方案.docx VIP
- 中考数学压轴题100题(全).docx
- 信息发布系统简介.doc VIP
文档评论(0)