从0开始学大数据
李智慧
同程艺龙交通首席架构师,前Intel大数据架构师,《大型网站技术架构》作者
立即订阅
14333 人已学习
课程目录
已完结 46 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 为什么说每个软件工程师都应该懂大数据技术?
免费
预习模块 (3讲)
预习 01 | 大数据技术发展史:大数据的前世今生
预习 02 | 大数据应用发展史:从搜索引擎到人工智能
预习 03 | 大数据应用领域:数据驱动一切
模块一 Hadoop大数据原理与架构 (7讲)
04 | 移动计算比移动数据更划算
05 | 从RAID看垂直伸缩到水平伸缩的演化
06 | 新技术层出不穷,HDFS依然是存储的王者
07 | 为什么说MapReduce既是编程模型又是计算框架?
08 | MapReduce如何让数据完成一次旅行?
09 | 为什么我们管Yarn叫作资源调度框架?
10 | 模块答疑:我们能从Hadoop学到什么?
模块二 大数据生态体系主要产品原理与架构 (7讲)
11 | Hive是如何让MapReduce实现SQL操作的?
12 | 我们并没有觉得MapReduce速度慢,直到Spark出现
13 | 同样的本质,为何Spark可以更高效?
14 | BigTable的开源实现:HBase
15 | 流式计算的代表:Storm、Flink、Spark Streaming
16 | ZooKeeper是如何保证数据一致性的?
17 | 模块答疑:这么多技术,到底都能用在什么场景里?
模块三 大数据开发实践 (8讲)
18 | 如何自己开发一个大数据SQL引擎?
19 | Spark的性能优化案例分析(上)
20 | Spark的性能优化案例分析(下)
21 | 从阿里内部产品看海量数据处理系统的设计(上):Doris的立项
22 | 从阿里内部产品看海量数据处理系统的设计(下):架构与创新
23 | 大数据基准测试可以带来什么好处?
24 | 从大数据性能测试工具Dew看如何快速开发大数据系统
25 | 模块答疑:我能从大厂的大数据开发实践中学到什么?
模块四 大数据平台与系统集成 (6讲)
26 | 互联网产品 + 大数据产品 = 大数据平台
27 | 大数据从哪里来?
28 | 知名大厂如何搭建大数据平台?
29 | 盘点可供中小企业参考的商业大数据平台
30 | 当大数据遇上物联网
31 | 模块答疑:为什么大数据平台至关重要?
模块五 大数据分析与运营 (5讲)
32 | 互联网运营数据指标与可视化监控
33 | 一个电商网站订单下降的数据分析案例
34 | A/B测试与灰度发布必知必会
35 | 如何利用大数据成为“增长黑客”?
36 | 模块答疑:为什么说数据驱动运营?
模块六 大数据算法 (6讲)
37 | 如何对数据进行分类和预测?
38 | 如何发掘数据之间的关系?
39 | 如何预测用户的喜好?
40 | 机器学习的数学原理是什么?
41 | 从感知机到神经网络算法
42 | 模块答疑:软件工程师如何进入人工智能领域?
智慧写给你的寄语 (1讲)
所有的不确定都是机会——智慧写给你的新年寄语
结束语 (2讲)
结束语 | 未来的你,有无限可能
第2季回归丨大数据之后,让我们回归后端
从0开始学大数据
登录|注册

12 | 我们并没有觉得MapReduce速度慢,直到Spark出现

李智慧 2018-11-24
Hadoop MapReduce 虽然已经可以满足大数据的应用场景,但是其执行速度和编程复杂度并不让人们满意。于是 UC Berkeley 的 AMP Lab 推出的 Spark 应运而生,Spark 拥有更快的执行速度和更友好的编程接口,在推出后短短两年就迅速抢占 MapReduce 的市场份额,成为主流的大数据计算框架。
读到这里请你先停一下,请给这段看似“没毛病”的引子找找问题。
不知道你意识到没有,我在这段开头说的,“Hadoop MapReduce 虽然已经可以满足大数据的应用场景,但是其执行速度和编程复杂度并不让人们满意”,这句话其实是错误的。这样说好像可以让你更加清晰地看到事物发展的因果关系,同时也可以暗示别人自己有洞察事物发展规律的能力。然而,这种靠事后分析的因果规律常常是错误的,往往把结果当作了原因
事实上,在 Spark 出现之前,我们并没有对 MapReduce 的执行速度不满,我们觉得大数据嘛、分布式计算嘛,这样的速度也还可以啦。至于编程复杂度也是一样,一方面 Hive、Mahout 这些工具将常用的 MapReduce 编程封装起来了;另一方面,MapReduce 已经将分布式编程极大地简化了,当时人们并没有太多不满。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《从0开始学大数据》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(50)

  • 光脚的sun
    老师,现在都说flink更优秀,是不是我们直接跳过mr和spark直接学flink就行了?

    作者回复: 如果从MapReduce,spark,flink一路学过来,就会发现他们一脉相承的,如果理解了前面的,学习后面的很多地方甚至可以秒懂。

    登山的时候,老司机们都走Z字形,有时候最长的路是最容易的路。

    2018-11-24
    52
  • 三木子
    比如学习机器学习,可能有很多人和我有同感,基本上是从入门到放弃。我自己也思考了原因。主要是恐惧心态,因为数学差,恐惧那些数学公式,而现在又崇尚几十天学会xxx,这会让人更加焦虑,更不能静下心学习。所以我认为解决问题主要根本也就是调整心态,想象学数学公式就像谈恋爱,从陌生到熟悉,再到走入婚姻的殿堂,不是一蹴而就,罗马不是一天建成的。所以公式一遍看不懂就看两遍,三遍,刻意练习,逃离舒适区。念念不忘,必有回响!
    2018-11-24
    27
  • 老男孩
    惭愧,我遇到的产品经理或者需求人员,基本上分为两类。一类经常说,这是客户的要求必须马上改,用客户来压制研发。一类比较以自我为中心,把自己的观点等同于用户的观点。常常想当然,结果用户一看不是我想要的。结果就是开发人员一次次的从坑里刚爬上来,又被产品一脚踹下去。有几次我真的无法克制,有一种想套麻袋然后一顿打的冲动。🤔非常赞同老师的观点,不管解决技术问题,还是设计产品都需要深刻的洞察力。想起前面您说的抽象是事物本质的洞察,遇到问题先猫在后面(虽然这种方式比较猥琐),冷静思考,暗中观察,从别人的方案或者错误中总结发现规律,然后顺势而为。

    作者回复: 👍🏻

    2018-11-25
    22
  • 小美
    spark优势在于迭代式的内存运算,适合于做大数据分析,机器学习之类的,flink是流式计算框架,对于实时性任务也许更好,对于机器学习内任务,spark还是要好点

    作者回复: 👍🏻

    2018-11-25
    19
  • 无心乐乐
    第一次在极客写留言,感觉这个专栏的老师真的是用心良苦,不只是技术的教授,更是经验的传递。
    我们常常意识不到问题的存在,直到有人解决了这些问题。
    醍醐灌顶,受益良多!!

    作者回复: 谢谢鼓励,共勉~

    2018-11-24
    19
  • Lambda
    看了一些留言,感觉大家还是”面向工具“学习,对层出不穷的”工具“,感到困惑。但是归根结底,这些工具本身还是计算机科学中很多基础概念的具象化,因此,”面向思想“学习应该是更好的一种做法。先对一种最原始的实现透彻的研究,理解其背后的思想和设计理念,然后再逐步学习后期更为先进的技术,这种学习路径应该更为有效。

    作者回复: 赞

    2018-11-26
    10
  • 张闯
    理解了java8的lambda集合操作相比于传统集合操作的优势,就理解了spark相比于MapReduce的优势。
    第一步,将集合对象封装成流式对象。
    第二部,将函数传递给流式对象,在流式对象中执行内部循环。
    spark之所以快,就是将外部循环替换成了内部循环。
    传统的面向对象编程思想下,是将一个集合作为数据对象传递给一个方法,这个方法会return一个新的数据集,然后再把这个新的数据集作为入参传递给下一个方法。一趟接一趟,最终得到想要的数据处理结果。
    函数式编程思想是,先把集合封装成流,我把上面两个方法改写成无状态函数丢给这个集合流,对于集合内的每一项会依次执行这两个函数,最终这个集合就是一个新的集合。只循环一趟。
    原本需要做连续循环处理的次数越多,spark体现出的效率提升就越明显。

    lambda里面叫Stream,spark里面叫RDD。
    2019-04-04
    8
  • weiruan85
    客户:我想租一匹马,你帮忙打听下一天多钱
         fey: 你租马时干什么用呢,犁地还是自己骑。
         客户:自己骑
         fey:那您骑马时准备干什么去呢
         客户: 我打算骑着买东西
         fey:打算买什么东西呢,去那买呢
        客户:我打算去兰州,买一碗牛肉面
         fey:为什么要求兰州买牛肉面呢
        客户:其他地方的不好吃
          fey:我认识一家兰州人开的牛肉面馆,味道很正宗,你去尝尝。
        客户: 确实好吃,再页不用去兰州了。
         
    2019-07-31
    5
  • Dream.
    乔布斯还在世的时候就说过用户永远不知道他们想要的是什么,只有我们做出来了,他们才发现这就是他们想要的。
    这几年来一直将这句话当做自己需求分析时的座右铭。
    但一直不能领会其中的精髓,今天看完老师的专栏,有种拨开云雾的感觉。
    其实我们大多时候把结果当成了原因,并且缺乏了深度的思考以及洞察力。

    2018-11-26
    5
  • 呆猫
    我要把这篇文章推荐给我们的产品经理去好好读读
    2018-11-26
    5
  • hua168
    看了这篇文章,这个价格,值了!很值!!超值得!!!不到教我们技术还教我们思想!大神真的很负责👍…
    Spark可以代替mapReduce那我理解,是不是可以直接跳过mapReduce直接学习Spark?如果有一个东西比Spark更好,我也直接跳过Spark?
    我先把您的大数据学完,再补学java大数据编程,可以吧?
    我们在广州骗子太多,学会了观察他们是怎么骗的,总结骗子大部分都是利用贪心骗钱。这个算不😜?
    2018-11-24
    5
  • 小辉辉
    好的提问艺术更能帮助我们深入理解和思考问题
    2018-11-25
    4
  • hunterlodge
    工作中,一个新的方案出现的时候,如果它在某个或某些方面优于当前最好方案,我一定会去思考它的catch(另一面)是什么?比如新方案更快,我就大概会看看它的空间使用率、可维护度、全面度。一般都会发现一些问题。生活里也是如此,对表面上只有好处而无需付出或者代价很低的东西永远保持警惕。说白了,世上没有免费的午餐,一些都是权衡利弊的结果
    2018-11-26
    3
  • Abyte
    大数据开发处理数据过程中难免被领导提一些需求,做各种各样的报表统计。我们第一手接触数据,如果我们能再有精力投入业务,是不是也能主动做出一些老板需要的报表统计,提升自己的价值

    作者回复: 👍🏻

    2018-11-25
    2
  • 黄吉吉
    老师有开其他博客、公众号嘛?想听老师更多的分享

    作者回复: 谢谢支持,可以看看我写的书《大型网站技术架构:核心原理与案例分析》

    2018-11-25
    1
  • 纯洁的憎恶
    李老师不仅讲大数据还讲大局观😄
    2018-11-24
    1
  • REAL_MADIRD
    养成穿透问题现象直达问题本质的能力真的很重要,老师有机会可以多给我分享下如何培养这种能力,或者学习编程过程中的一些方法论,我觉得有时这比学习本身更重要
    2018-11-24
    1
  • 吴科🍀
    老师,讲讲基于spark的数据分析和机器学习吧
    2018-11-24
    1
  • 随缘_NJ
    发现用户的需求,用户永远不清楚想要什么,总结的真好
    2018-11-24
    1
  • 张小喵
    老师,我有一个疑问,本节里面的word count示例代码,map完了直接reduce,spark中一个map操作是针对的一个RDD分片,并不是针对的所有的分片(要统计文件的所有分片),我们reduce的操作不是应该处理所有的map数据结果汇集之后的RDD吗,为何只是一个map计算的结果?

    作者回复: reduce是针对所有分片的。

    但是我们程序不需要关心有多少分片,程序只关注数据处理逻辑,分片以及和分布式有关的一切都由Spark框架自己完成。

    2019-12-03
收起评论
50
返回
顶部