论文阅读-2004-jeffrey-mapreduce

1. Research Objective

实现一个基于普通主机集群的高可扩展性的分布式编程框架,使用者不需要去考虑计算的并行,系统的容错,数据的分发,负载平衡等问题,专注于业务本身。

2. Programming model

计算任务的输入是一个键值对的集,输出是另一个键值对的集,用户将将计算任务抽象成map和reduce两个阶段。

map阶段,map函数接受一个键值对的输入,输出键值对的集合作为中间结果,mapreduce库负责将所有具有相同键的值进行聚合,reduce阶段的输入

reduce阶段,reduce函数接受一个中间结果的键和这个键对应的聚合的值的列表,reduce函数将这些值聚合构建一个可能更小的集合。其中,中间结果的值会以一个迭代器的形式传入到reduce当中以适应值过多超过内存限制的情况。

map(K1, V1) -> list(K2, V2)
reduce(K2, list(V2)) -> list(V2)

具体应用例子:

  • 分布式的 Grep map方法输入一行,如果该行能够匹配,输出该行; reduce方法是一个01函数,只将输入的值进行输出
  • 计算URL的访问次数 map方法处理给定的日志,输出<URL, 1>的列表,reduce方法将所有相同URL的键值对进行累加,返回<URL, TOTAL COUNT>
  • 倒排索引 map方法解析一个网页文档,输出一个(word, document ID)的序列;reduce方法接受所有具有给定word的键值对,对documentID进行排序后输出(word, list(doucument ID)),所有的输出集合构成一个简单的倒排索引

不同环境对应不同版本的合适的mapreduce实现,文章介绍适用于google的环境的实现:

  • 大量的普通PC机器
  • 商业网络设备
  • 运行在具有数百台client的集群之上,机器故障是大概率事件
  • 使用便宜的IDE硬盘作为存储,机器可以直接访问这些硬盘,文件系统通过备份实现在不可靠硬件上的可靠性和可用性
  • 用户向调度系统提交工作,每个工作由若干个人物足证,调度系统负责将这些任务分发到一个集群中的一些可用的机器上

3. Method(s)

执行的基本步骤

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值