http://hi.baidu.com/hzd2712/item/d2465ae65270ab3e4cdcaf55

MapReduce几个典型的例子

       在Google的《MapReduce: Simpli ed Data Processing on Large Clusters》论文中,作者向世界阐述了什么是MapReduce。其中的几个关于MapReduce的例子很简单,但是很有代表性。拿来分享一下。

       分布式Grep:map函数检查输入行,如果匹配给定的模板(类似于正则表达式的匹配),就把该行输出。reduce函数是一个标识函数,仅用来把中间数据输出。

       URL访问频率统计:map函数处理网页请求的日志文件,并输出<URL, 1>的键值对。reduce函数把相同URL访问次数值相加到一起,输出<URL, 总访问数>的键值对。

       逆向Web-Link图:map函数把source网页中每一个链接到target URL的结果输出为<target, source>。reduce函数把所有和给定target相关的source URLs连接起来,并且输出<target, list(source)>。举个例子,搜索引擎中输入关键字,网络爬虫就会根据关键字(target)查找相关的网页并找到所有的链接,这些就是list(source)。

        主机关键词向量:关键词向量归纳一个文档或一系列文档中最重要的词出现的频率,为一组<word, frequency>的键值对。map函数输出每一个输入文档中的<主机名,关键词向量>的键值对(这里的主机名是从文档的URL中抽取出的)。reduce处理给定主机的所有文档的关键词向量,累加所有的关键词向量,抛掉不常见的关键词,输出<主机名,关键词向量>的键值对。这个很常见的用处就是视频网站上关键词排行榜,都可以这样实现。

        倒序索引:map函数解析每一个文档,输出一个序列<word, document ID>键值对。reduce函数所有相同word的键值对,并根据document IDs排序,输出<word, list(document ID)>。输出的键值对集合形成了一个简单的倒序索引。这样可以很容易跟踪关键字在文档库中的位置。

        分布式排序:map函数从每一个记录中抽取出key,并输出<key, record>的键值对。reduce函数原样输出所有的键值对。这个计算依赖于MapReduce中的分割函数(Partitioning Function)。

mapreduce (七) 几个实例的更多相关文章

  1. MapReduce多种join实现实例分析(二)

    上一篇<MapReduce多种join实现实例分析(一)>,大家可以点击回顾该篇文章.本文是MapReduce系列第二篇. 一.在Map端进行连接使用场景:一张表十分小.一张表很大.用法: ...

  2. hadoop中MapReduce多种join实现实例分析

    转载自:http://zengzhaozheng.blog.51cto.com/8219051/1392961 1.在Reudce端进行连接. 在Reudce端进行连接是MapReduce框架进行表之 ...

  3. 【甘道夫】官方网站MapReduce代码注释具体实例

    引言 1.本文不描写叙述MapReduce入门知识,这类知识网上非常多.请自行查阅 2.本文的实例代码来自官网 http://hadoop.apache.org/docs/current/hadoop ...

  4. MapReduce三种join实例分析

    本文引自吴超博客 实现原理 1.在Reudce端进行连接. 在Reudce端进行连接是MapReduce框架进行表之间join操作最为常见的模式,其具体的实现原理如下: Map端的主要工作:为来自不同 ...

  5. MapReduce多种join实现实例分析(一)

    一.概述    对于RDBMS中的join操作大伙一定非常熟悉,写sql的时候要十分注意细节,稍有差池就会耗时巨久造成很大的性能瓶颈,而在Hadoop中使用MapReduce框架进行join的操作时同 ...

  6. <automate the boring stuff with python>---第七章 正则实例&正则贪心&匹配电话号码和邮箱

    第七章先通过字符串查找电话号码,比较了是否使用正则表达式程序的差异,明显正则写法更为简洁.易扩展.模式:3 个数字,一个短横线,3个数字,一个短横线,再是4 个数字.例如:415-555-4242 i ...

  7. 一文读懂MapReduce 附流量解析实例

    1.MapReduce是什么 Hadoop MapReduce是一个软件框架,基于该框架能够容易地编写应用程序,这些应用程序能够运行在由上千个商用机器组成的大集群上,并以一种可靠的,具有容错能力的方式 ...

  8. MapReduce使用JobControl管理实例

    import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.fs.Path; impo ...

  9. Vue.js-07:第七章 - Vue 实例的生命周期

    一.前言  在之前的 Vue 学习中,我们在使用 Vue 时,都会创建一个 Vue 的实例,而每个 Vue 实例在被创建时都要经过一系列的初始化过程.例如,需要设置数据监听.编译模板.将实例挂载到 D ...

随机推荐

  1. Windows版本搭建安装React Native环境配置及相关问题

    此文档整理参考地址: http://www.lcode.org/%E5%8F%B2%E4%B8%8A%E6%9C%80%E8%AF%A6%E7%BB%86windows%E7%89%88%E6%9C% ...

  2. 【Android - MD】之TabLayout的使用

    TabLayout是Android 5.0新特性--Material Design中的一个控件,是一个标签页的导航条,常结合ViewPager完成页面导航. 和其他MD控件一样,使用TabLayout ...

  3. System.in与System.out(标准输入与标准输出)详解

    package test; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; p ...

  4. [置顶] Codeforces Round #198 (Div. 1)(A,B,C,D)

    http://codeforces.com/contest/341 赛后做的虚拟比赛,40分钟出了3题,RP爆发. A计数问题 我们可以对每对分析,分别对每对<a, b>(a走到b)进行统 ...

  5. Teamcity+SVN+VisualStudio在持续集成简明教程

    Teamcity+SVN+VisualStudio持续集成 简明教程 一.写在最前: 1.      各组件版本号例如以下: Teamcity(简称tc)版本号:8.1.4 SVN版本号:Tortoi ...

  6. [转] webpack debug in webstorm

    先run build,然后用node server.js来做 WebStorm 11 adds support for debugging client-side apps built with We ...

  7. MySQL(10):实体、实体表和外键(foreign key)

    1.实体        数据库管理系统中的各种用于数据管理方便而设定的各种数据管理对象,如:数据库表.视图.存储过程等都是数据库实体.广义上讲,这些对象中所存储的数据也是数据库实体.因为它们也是确切存 ...

  8. VS 2015 update2 装xamarin后,编辑axml文件无智能提示的解决方法。

    1.从github网上下载xsd文件.地址:https://github.com/atsushieno/monodroid-schema-gen: 2.如果你是以ie或edge浏览器下载的,一定要又键 ...

  9. vim 缩写abbreviation

    创建 :ab abbreviation pharse 取消 :unab abbreviation 缩写使用 insert模式下输入缩写,Enter键获得pharse.

  10. OSI 网络七层模型(笔记)

    一直以来我们都在使用着互联网,每天聊着qq,上着淘宝,但是却不了解怎么运行的呢,充满了好奇.今天同过了解来总结一下OSI网络七层模型: 上一张图 OSI (open system interconne ...