没有合适的资源?快使用搜索试试~ 我知道了~
十分钟掌握MapReduce精髓
4星 · 超过85%的资源 需积分: 9 23 下载量 36 浏览量
2014-07-22
15:28:29
上传
评论 1
收藏 44KB DOC 举报
温馨提示
试读
5页
对于初学Hadoop大数据的同学来说,MapReduce是一个重头戏,学习好MapReduce是基本的要求,该文档就是帮助初学者快速理解MapReduce的精髓,为Hadoop的学习打下基础。
资源推荐
资源详情
资源评论
十分钟掌握 MapReduce 的精髓
编 者 注 : 本 文 来 源 于 孟 岩 的 博 客 , 原 文 为 《 Map Reduce – the Free Lunch is not
over?》,作者的目的是讨论 MapReduce 是否应该继续提供“免费的午餐”,但作者在文中用
比 较 通 俗 的 语 言 对 MapReduce 的 原 理 进 行 了 讲 解 并 给 了 例 子 , 我 相 信 这 对 不 熟 悉
MapReduce 的人来说是个非常不错的入门文章,所以将文章转过来并改名《十分钟掌握
MapReduce 的精髓》与各位云友分享,希望对大家有用。以下是原文:
微软著名的 C++大师 Herb Sutter 在 2005 年初的时候曾经写过一篇重量级的文章:”The
Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software“,预言
OO 之后软件开发将要面临的又一次重大变革-并行计算。
摩尔定律统制下的软件开发时代有一个非常有意思的现象:”Andy giveth, and Bill taketh
away.”。不管 CPU 的主频有多快,我们始终有办法来利用它,而我们也陶醉在机器升级带来
的程序性能提高中。
我记着我大二的时候曾经做过一个五子棋的程序,当时的算法就是预先设计一些棋型(有优先
级),然后扫描棋盘,对形势进行分析,看看当前走哪部对自己最重要。当然下棋还要堵别人 ,
这就需要互换双方的棋型再计算。如果只算一步,很可能被狡猾的对手欺骗,所以为了多想几
步,还需要递归和回朔。在当时的机器上,算 3 步就基本上需要 3 秒左右的时间了。后来大学
毕业收拾东西的时候找到这个程序,试了一下,发现算 10 步需要的时间也基本上感觉不出来
了。
不知道你是否有同样的经历,我们不知不觉的一直在享受着这样的免费午餐。可是,随着摩尔
定律的提前终结,免费的午餐终究要还回去。虽然硬件设计师还在努力: Hyper Threading
CPU(多出一套寄存器,相当于一个逻辑 CPU)使得 Pipeline 尽可能满负荷,使多个 Thread
的操作有可能并行,使得多线程程序的性能有 5%-15%的提升;增加 Cache 容量也使得包括
Single-Thread 和 Multi-Thread 程序都能受益。也许这些还能帮助你一段时间,但问题是,
我们必须做出改变,面对这个即将到来的变革,你准备好了么?
Concurrency Programming != Multi-Thread Programming 。 很 多 人 都 会 说
MultiThreading 谁不会,问题是,你是为什么使用/如何使用多线程的?我从前做过一个类似
AcdSee 一样的图像查看/处理程序,我通常用它来处理我的数码照片。我在里面用了大量的多
线程,不过主要目的是在图像处理的时候不要 Block 住 UI,所以将 CPU Intensive 的计算部
分用后台线程进行处理。而并没有把对图像矩阵的运算并行分开。
我觉得 Concurrency Programming 真正的挑战在于 Programming Model 的改变,在程序
员的脑子里面要对自己的程序怎样并行化有很清楚的认识,更重要的是,如何去实现(包括架
构、容错、实时监控等等)这种并行化,如何去调试,如何去测试。
在 Google,每天有海量的数据需要在有限的时间内进行处理(其实每个互联网公司都会碰到
这样的问题),每个程序员都需要进行分布式的程序开发,这其中包括如何分布、调度、监控
资源评论
- airomyas2014-08-04讲的很清晰,但是MapReduce也快过时了。
kingbird90
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功