大数据经典论文解读
徐文浩
bothub 创始人
13844 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 59 讲
大数据经典论文解读
15
15
1.0x
00:00/00:00
登录|注册

复习课(二)| MapReduce

你好,我是黄金。欢迎来到第二期复习课,今天我们来回顾 MapReduce 论文的知识点。

MapReduce 介绍

在论文的第 1 节“Introduction”中,作者提到过去 5 年里,Google 的同事们实现了上百个针对特定领域的大数据分析程序,这促使他们思考开发一种更通用的编程模型,让开发者能够专注于分析程序的业务逻辑,而不需要关心分布式领域的复杂问题。
MapReduce 的编程模型也并非是作者首创,而是借鉴了 Lisp 这类函数式编程语言的思想。熟悉 Java Stream API 的同学对这种编程模式应该都不陌生,它实际上就是 map、groupingBy、reduce 之类的操作,这种编程模型分离了程序的业务逻辑和控制逻辑,使得程序在大规模的分布式环境下运行成为了可能。
另外,尽管 MapReduce 编程模型非常简单,现实中的大多数任务却都可以用这种编程模型来表达,这在函数式编程语言中已经得到了证明,它为 MapReduce 后来广泛地流行奠定了基础。
在论文第 6.1 节“Large-Scale Indexing”中就给出了一个例子,说明用 MapReduce 重写的索引服务带来的显著收益:第一,代码更精简,也更容易理解,原来用来实现某个计算功能的代码有 3800 行,重构后只有 700 行;第二,性能更好,原来改变索引需要几个月,现在只要几天;第三,更容易维护,也更容易提升性能,因为分布式问题都交给了 MapReduce 框架来处理。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

MapReduce是一种用于大规模数据处理的编程模型,旨在简化分布式系统中的复杂问题。该模型借鉴了函数式编程语言的思想,通过Map和Reduce两个函数实现数据变换和规约。文章介绍了MapReduce的执行过程,包括启动多个Worker程序、数据分片、混洗过程等。此外,文章还探讨了MapReduce的容错设计和性能优化,如Master进程的重启机制、计算靠近存储的优化以及通过Combiner减少数据传输等。同时,文章也提到了MapReduce的缺陷,如用户仍需意识到分布式的存在以及性能不够理想的问题。总的来说,MapReduce作为一种简单且高效的编程模型,在大规模数据处理中具有重要意义,同时也为后续工程师们提供了改进和优化的机会。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《大数据经典论文解读》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • EveryDayIsNew
    理论指导实践,所有的伟大的设计都是权衡
    2021-11-15
收起评论
显示
设置
留言
1
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部