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. jstree 节点拖拽保存数据库

    需要jstree具有拖拽功能需要在加载jstree时添加dnd插件,具体看代码: $('**').jstree({ //plugins-各种jstree的插件引入,展示树的多样性 'plugins' ...

  2. docker 镜像和容器的批量清理

    镜像和容器的清理 删除所有运行中的容器 $ docker kill $(docker ps -q) 删除所有停止的容器 $ docker rm $(docker ps -a -q) 删除所有没有tag ...

  3. Java语言基础(二)

    Java语言基础(二) 一.变量续 (1).变量有明确的类型 (2).变量必须有声明,初始化以后才能使用 (3).变量有作用域,离开作用域后自动回收 变量作用域在块内有效 (4).在同一定义域中变量不 ...

  4. IOS-NSDateFormatter使用介绍

    IOS-NSDateFormatter使用介绍 NSDateFormatter的使用: NSDate *nowDate = [[NSDate alloc] init]; NSDateFormatter ...

  5. 第三篇:GPU 并行编程的运算架构

    前言 GPU 是如何实现并行的?它实现的方式较之 CPU 的多线程又有什么分别? 本文将做一个较为细致的分析. GPU 并行计算架构 GPU 并行编程的核心在于线程,一个线程就是程序中的一个单一指令流 ...

  6. 移动端 设置 小于12px 字体 初探

    1.移动端字号规范 2. 百度字号调研 3. 绕过12px 限制 4. 缩放 5. chrome  字号

  7. SpringSecurity 在MVC 中的简单使用(翻译的,稍加改动)

    Spring Security允许开发人员轻松地将安全功能集成到J2EE Web应用程序中,它通过Servlet过滤器实现“用户自定义”安全检查. 在本教程中,我们将向您展示如何在Spring MVC ...

  8. Android中dip,dp,sp,pt和px的区别

    dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不依赖像素. ...

  9. Mongodb 启动时 lock文件访问没有权限处理

    mongodb 第二次启动时候异常信息: lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance ...

  10. ToString格式.

    C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString ...