大规模数据处理实战
蔡元楠
Google Brain资深工程师
立即订阅
8443 人已学习
课程目录
已完结 46 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 从这里开始,带你走上硅谷一线系统架构师之路
免费
模块一 | 直通硅谷大规模数据处理技术 (3讲)
01 | 为什么MapReduce会被硅谷一线公司淘汰?
02 | MapReduce后谁主沉浮:怎样设计下一代数据处理技术?
03 | 大规模数据处理初体验:怎样实现大型电商热销榜?
模块二 | 实战学习大规模数据处理基本功 (8讲)
04 | 分布式系统(上):学会用服务等级协议SLA来评估你的系统
05 | 分布式系统(下):架构师不得不知的三大指标
06 | 如何区分批处理还是流处理?
07 | Workflow设计模式:让你在大规模数据世界中君临天下
08 | 发布/订阅模式:流处理架构中的瑞士军刀
09 | CAP定理:三选二,架构师必须学会的取舍
10 | Lambda架构:Twitter亿级实时数据分析架构背后的倚天剑
11 | Kappa架构:利用Kafka锻造的屠龙刀
模块三 | 抽丝剥茧剖析Apache Spark设计精髓 (10讲)
12 | 我们为什么需要Spark?
13 | 弹性分布式数据集:Spark大厦的地基(上)
14 | 弹性分布式数据集:Spark大厦的地基(下)
15 | Spark SQL:Spark数据查询的利器
16 | Spark Streaming:Spark的实时流计算API
17 | Structured Streaming:如何用DataFrame API进行实时数据分析?
18 | Word Count:从零开始运行你的第一个Spark应用
19 | 综合案例实战:处理加州房屋信息,构建线性回归模型
20 | 流处理案例实战:分析纽约市出租车载客信息
21 | 深入对比Spark与Flink:帮你系统设计两开花
模块四 | Apache Beam为何能一统江湖 (8讲)
22 | Apache Beam的前世今生
23 | 站在Google的肩膀上学习Beam编程模型
24 | PCollection:为什么Beam要如此抽象封装数据?
25 | Transform:Beam数据转换操作的抽象方法
26 | Pipeline:Beam如何抽象多步骤的数据流水线?
27 | Pipeline I/O: Beam数据中转的设计模式
28 | 如何设计创建好一个Beam Pipeline?
29 | 如何测试Beam Pipeline?
模块五 | 决战 Apache Beam 真实硅谷案例 (7讲)
30 | Apache Beam实战冲刺:Beam如何run everywhere?
31 | WordCount Beam Pipeline实战
32 | Beam Window:打通流处理的任督二脉
33 | 横看成岭侧成峰:再战Streaming WordCount
34 | Amazon热销榜Beam Pipeline实战
35 | Facebook游戏实时流处理Beam Pipeline实战(上)
36 | Facebook游戏实时流处理Beam Pipeline实战(下)
模块六 | 大规模数据处理的挑战与未来 (4讲)
37 | 5G时代,如何处理超大规模物联网数据
38 | 大规模数据处理在深度学习中如何应用?
39 | 从SQL到Streaming SQL:突破静态数据查询的次元
40 | 大规模数据处理未来之路
专栏加餐 | 特别福利 (4讲)
FAQ第一期 | 学习大规模数据处理需要什么基础?
加油站 | Practice makes perfect!
FAQ第二期 | Spark案例实战答疑
FAQ第三期 | Apache Beam基础答疑
结束语 (1讲)
结束语 | 世间所有的相遇,都是久别重逢
大规模数据处理实战
登录|注册

16 | Spark Streaming:Spark的实时流计算API

蔡元楠 2019-05-24
你好,我是蔡元楠。
今天我要与你分享的内容是“Spark Streaming”。
通过上一讲的内容,我们深入了解了 Spark SQL API。通过它,我们可以像查询关系型数据库一样查询 Spark 的数据,并且对原生数据做相应的转换和动作。
但是,无论是 DataFrame API 还是 DataSet API,都是基于批处理模式对静态数据进行处理的。比如,在每天某个特定的时间对一天的日志进行处理分析。
在第二章中你已经知道了,批处理和流处理是大数据处理最常见的两个场景。那么作为当下最流行的大数据处理平台之一,Spark 是否支持流处理呢?
答案是肯定的。
早在 2013 年,Spark 的流处理组件 Spark Streaming 就发布了。之后经过好几年的迭代与改进,现在的 Spark Streaming 已经非常成熟,在业界应用十分广泛。
今天就让我们一起揭开 Spark Streaming 的神秘面纱,让它成为我们手中的利器。

Spark Streaming 的原理

Spark Streaming 的原理与微积分的思想很类似。
在大学的微积分课上,你的老师一定说过,微分就是无限细分,积分就是对无限细分的每一段进行求和。它本质上把一个连续的问题转换成了无限个离散的问题。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《大规模数据处理实战》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(8)

  • Hobbin
    老师,Spark团队对Spark streaming更新越来越少,Spark streaming存在使用Processing time 而非 Event time,批流代码不统一等问题,而Structured streaming对这些都有一定改进。所以Structure streaming 会替代Spark streaming或者Flink,成为主流的流计算引擎吗?

    作者回复: 你说的很对,Structured streaming是Spark流处理的未来,所以我在第17讲以及之后的实战演练才重点介绍了它。此处介绍spark streaming一来是因为它的原理很基本也很重要,二来它承接了之前介绍的RDD API。

    所以我觉得Structured Streaming会替代Spark Streaming,但是很难替代Flink。Flink在流处理上的天然优势很难被Spark超越,让我们拭目以待Strucutred Streaming未来会如何发展。

    2019-05-24
    2
    19
  • hua168
    批处理可以选择spark;流处理:spark stream,storm,Flink;还有现在大统一的beam
    请问:这些技术都要学一遍吗?精力放在哪个技术上?
    如果我是初学者,我能直接学beam其它都不学吗?
    2019-05-24
    2
    13
  • 邱从贤※klion26
    上一条留言没有说完。
    spark streaming 需要设置 batch time 是多少,这决定时效性,以及调度的 overhead,另外要看自己需要的吞吐多大,并发是不是有特殊需求。
    spark streaming 有几个点不太喜欢,修改业务逻辑后,需要删除 checkpoint 才行,这会导致从头计算;慢节点没法解决,当一个 batch 里面有一个节点很难的时候,整个 batch 都无法完成。
    一个反常识的点:实时 etl 同样吞吐下,flink 比 spark streaming 更节省资源。
    另外官方已经放弃 spark streaming,转向structured streaming,但是从邮件列表看又没有 commiter 在管,导致 pr 没人 review,或许这和 spark 整体的重心或者方向有关吧
    2019-05-26
    5
  • lwenbin
    没用过spark streaming, 用storm比较多。
    觉得流处理关键在于要在窗口内尽快地把到来的数据处理完,不要造成数据堆积,内存溢出。
    其中牵涉到了如何高效地接受数据,如何并行尽快地处理数据。
    觉得优化可以从:接受输入,处理算法,处理单元数量,GC调优等方面入手吧。
    有个问题,对于RDD如果transform链很长,感觉是否会对性能造成一定影响,特别是流式或者图形计算?老师能否解答一下。
    谢谢!

    作者回复: 如果transform链很长,在流处理中确实会影响处理的实时性,你的想法是对的。如果只有一条很长的链,在Spark的框架中,也很难去优化。

    2019-05-24
    1
    5
  • Ming
    优化的定义很广,不知道在这个领域大家提到这个词主要指的是什么?望解答

    不过,对具体实现细节不了解的情况下有几个猜测:
    我会改变时间粒度,来减少RDD本身带来的开销,上文的例子里时间粒度如果设置成10秒应该逻辑上也是可行的。
    另外,我大概会考虑多使用persist来减少因为窗口滑动产生的重复计算。
    2019-05-24
    3
  • 王翔宇🍼
    sc和ssc的区别是什么?我理解ssc才是那个streamingContext吧,如果是这样,那么又出现错误了。
    2019-07-12
  • 渡码
    稳定性:对于7*24小时的流式任务至关重要
    低延迟高吞吐量
    2019-05-28
  • 邱从贤※klion26
    spark streaming 批次的大小设置多少合适,从官方宣传来看已经被 structure steeaming 替代。
    2019-05-26
收起评论
8
返回
顶部