论文学习笔记:MapReduce

本文详细介绍了MapReduce的编程模型,通过实例展示了Map和Reduce函数在处理大数据计算问题中的作用,以及其在分布式计算环境中的实现方式,包括任务执行、Master数据结构、容错机制和性能优化等方面。此外,还探讨了MapReduce在大规模数据处理中的应用和成功经验。
摘要由CSDN通过智能技术生成

一、简介

* 大数据计算问题的提出:如何处理并行计算、如何分发数据、如何处理错误等等。这些问题合起来使得大数据处理变得复杂
* 为了解决这些问题,需要设计新的计算抽象模型:只要表述想要执行的运算,而屏蔽了并行计算、容错、数据分发、负载均衡等复杂细节,这些细节被封装在一个库里
* 抽象模型设计的灵感来自于函数式语言的Map和Reduce原语
    - Map:对输入数据应用Map操作得出一个中间<key, value>对集合
    - Reduce:对具有相同key的value集合上应用Reduce操作合并中间结果

* MapReduce框架模型:通过简单接口(用户只要实现Map和Reduce函数)实现大规模数据的分布式计算,实现在大量普通机器上的高性能计算


二、编程模型

1、例子

* 计算一个大文档集合中每个单词的出现次数(MapReduce编程的HelloWorld了),伪代码:

map(string key, string value)

    for each word w in value

        emitIntermediate(w, 1)

reduce(string key, Iterator values)

    int result = 0

    for each v in values

        result += ParseInt(v);

    Emit(AsString(result))

* map函数输出文档每个词(key),及这个词的出现次数(value,这里为1)

* reduce函数将每个词的出现次数累加起来输出

2、类型

* 在概念上,Map和Reduce函数有相关联的输入输出类型

    map(k1, v1) => list(k2, v2)

    reduce(k2, list(v2)) => list(v2)

3、更多的例子

* 分布式grep,分布式排序,计算URL访问频率,转置网络链接图等等


三、实现

* MapReduce模型有多种不同实现方式,取决于具体环境,如小型的共享内存机器、大型NUMA架构多处理器主机、大型网络连接集群等

1、执行概括

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值