12 | 我们并没有觉得MapReduce速度慢,直到Spark出现
李智慧
该思维导图由 AI 生成,仅供参考
Hadoop MapReduce 虽然已经可以满足大数据的应用场景,但是其执行速度和编程复杂度并不让人们满意。于是 UC Berkeley 的 AMP Lab 推出的 Spark 应运而生,Spark 拥有更快的执行速度和更友好的编程接口,在推出后短短两年就迅速抢占 MapReduce 的市场份额,成为主流的大数据计算框架。
读到这里请你先停一下,请给这段看似“没毛病”的引子找找问题。
不知道你意识到没有,我在这段开头说的,“Hadoop MapReduce 虽然已经可以满足大数据的应用场景,但是其执行速度和编程复杂度并不让人们满意”,这句话其实是错误的。这样说好像可以让你更加清晰地看到事物发展的因果关系,同时也可以暗示别人自己有洞察事物发展规律的能力。然而,这种靠事后分析的因果规律常常是错误的,往往把结果当作了原因。
事实上,在 Spark 出现之前,我们并没有对 MapReduce 的执行速度不满,我们觉得大数据嘛、分布式计算嘛,这样的速度也还可以啦。至于编程复杂度也是一样,一方面 Hive、Mahout 这些工具将常用的 MapReduce 编程封装起来了;另一方面,MapReduce 已经将分布式编程极大地简化了,当时人们并没有太多不满。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
大数据计算框架Spark的出现对MapReduce的影响是本文的主题。文章指出人们对MapReduce执行速度和编程复杂度的不满是在Spark出现后才产生的,而非之前就存在。作者提出了“我们常常意识不到问题的存在,直到有人解决了这些问题”的定律,并强调了产品设计大师和问题解决专家的观察和分析能力。文章详细介绍了Spark相对于MapReduce的优势,包括更快的执行速度和更简单易用的编程模型。通过对Spark的编程模型RDD的解释,读者可以了解Spark相对于MapReduce的面向对象的大数据计算特点。此外,文章还提到了Spark的生态体系和对产品设计的思考方式。最后,文章呼吁在工作中不要自以为是,而是通过观察和分析来逐渐提升自己的专业能力。文章内容深入浅出,既介绍了技术特点,又强调了思考方式和工作方法。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学大数据》,新⼈⾸单¥68
《从 0 开始学大数据》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(68)
- 最新
- 精选
- 光脚的sun老师,现在都说flink更优秀,是不是我们直接跳过mr和spark直接学flink就行了?
作者回复: 如果从MapReduce,spark,flink一路学过来,就会发现他们一脉相承的,如果理解了前面的,学习后面的很多地方甚至可以秒懂。 登山的时候,老司机们都走Z字形,有时候最长的路是最容易的路。
2018-11-242165 - 蚂蚁内推+vspark优势在于迭代式的内存运算,适合于做大数据分析,机器学习之类的,flink是流式计算框架,对于实时性任务也许更好,对于机器学习内任务,spark还是要好点
作者回复: 👍🏻
2018-11-2562 - 老男孩惭愧,我遇到的产品经理或者需求人员,基本上分为两类。一类经常说,这是客户的要求必须马上改,用客户来压制研发。一类比较以自我为中心,把自己的观点等同于用户的观点。常常想当然,结果用户一看不是我想要的。结果就是开发人员一次次的从坑里刚爬上来,又被产品一脚踹下去。有几次我真的无法克制,有一种想套麻袋然后一顿打的冲动。🤔非常赞同老师的观点,不管解决技术问题,还是设计产品都需要深刻的洞察力。想起前面您说的抽象是事物本质的洞察,遇到问题先猫在后面(虽然这种方式比较猥琐),冷静思考,暗中观察,从别人的方案或者错误中总结发现规律,然后顺势而为。
作者回复: 👍🏻
2018-11-2562 - 无心乐乐第一次在极客写留言,感觉这个专栏的老师真的是用心良苦,不只是技术的教授,更是经验的传递。 我们常常意识不到问题的存在,直到有人解决了这些问题。 醍醐灌顶,受益良多!!
作者回复: 谢谢鼓励,共勉~
2018-11-24242 - Lambda看了一些留言,感觉大家还是”面向工具“学习,对层出不穷的”工具“,感到困惑。但是归根结底,这些工具本身还是计算机科学中很多基础概念的具象化,因此,”面向思想“学习应该是更好的一种做法。先对一种最原始的实现透彻的研究,理解其背后的思想和设计理念,然后再逐步学习后期更为先进的技术,这种学习路径应该更为有效。
作者回复: 赞
2018-11-2636 - 张小喵老师,我有一个疑问,本节里面的word count示例代码,map完了直接reduce,spark中一个map操作是针对的一个RDD分片,并不是针对的所有的分片(要统计文件的所有分片),我们reduce的操作不是应该处理所有的map数据结果汇集之后的RDD吗,为何只是一个map计算的结果?
作者回复: reduce是针对所有分片的。 但是我们程序不需要关心有多少分片,程序只关注数据处理逻辑,分片以及和分布式有关的一切都由Spark框架自己完成。
2019-12-0310 - 18601611625我最近也在研究Hadoop,但是有一个疑问不知道理解的对不对。Hive Hbase 都是处在HDFS上层的处理框架,而且Hbase和Hive功能基本重叠,为什么HBase不能取代Hive?
作者回复: HBase和Hive的功能定位及设计原理完全不同,无法互相取代,详细请阅读后面Hive和HBase篇章。
2019-09-186 - eldon学习java 很多人都上来就学各式框架,浮于表面,看到什么就学什么。没有好好学习基础。 我觉得无论学习什么,基础都是最关键的。只有用笨办法打牢基础才能以后快速迭代新知识!
作者回复: 👍
2019-01-205 - Abyte大数据开发处理数据过程中难免被领导提一些需求,做各种各样的报表统计。我们第一手接触数据,如果我们能再有精力投入业务,是不是也能主动做出一些老板需要的报表统计,提升自己的价值
作者回复: 👍🏻
2018-11-255 - 小千道理都是相通的,我之前做过摄影师,客户往往对想要的照片没有任何概念,当策划/拍摄/后期出好片子,客户才会说这样的片子是我想要的。反之,片子客户不满意的提问题,往往说不到点子上,比如说客户说表情不满意,其实可能是觉得照片显胖。
作者回复: 👍🏻
2018-11-263
收起评论