从 0 开始学大数据
李智慧
同程艺龙交通首席架构师,前 Intel 大数据架构师,《大型网站技术架构》作者
71151 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 47 讲
智慧写给你的寄语 (1讲)
从 0 开始学大数据
15
15
1.0x
00:00/00:00
登录|注册

15 | 流式计算的代表:Storm、Flink、Spark Streaming

互联网应用开发方向
业务与技术分离
架构和执行引擎
流处理与批处理
时间段分段处理
利用Spark特性
运行机制
架构
思考题
Flink
Spark Streaming
Storm
大数据流计算

该思维导图由 AI 生成,仅供参考

我前面介绍的大数据技术主要是处理、计算存储介质上的大规模数据,这类计算也叫大数据批处理计算。顾名思义,数据是以批为单位进行计算,比如一天的访问日志、历史上所有的订单数据等。这些数据通常通过 HDFS 存储在磁盘上,使用 MapReduce 或者 Spark 这样的批处理大数据计算框架进行计算,一般完成一次计算需要花费几分钟到几小时的时间。
此外,还有一种大数据技术,针对实时产生的大规模数据进行即时计算处理,我们比较熟悉的有摄像头采集的实时视频数据、淘宝实时产生的订单数据等。像上海这样的一线城市,公共场所的摄像头规模在数百万级,即使只有重要场所的视频数据需要即时处理,可能也会涉及几十万个摄像头,如果想实时发现视频中出现的通缉犯或者违章车辆,就需要对这些摄像头产生的数据进行实时处理。实时处理最大的不同就是这类数据跟存储在 HDFS 上的数据不同,是实时传输过来的,或者形象地说是流过来的,所以针对这类大数据的实时处理系统也叫大数据流计算系统。
目前业内比较知名的大数据流计算框架有 Storm、Spark Streaming、Flink,接下来,我们逐一看看它们的架构原理与使用方法。

Storm

其实大数据实时处理的需求早已有之,最早的时候,我们用消息队列实现大数据实时处理,如果处理起来比较复杂,那么就需要很多个消息队列,将实现不同业务逻辑的生产者和消费者串起来。这个处理过程类似下面图里的样子。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

大数据流计算系统中的代表性框架:Storm、Spark Streaming和Flink,分别展现了各自的特点和优势。Storm框架简化了数据处理流程,使开发者只需关注业务逻辑代码;Spark Streaming利用了Spark的分片和快速计算特性,实现了实时流计算;而Flink不仅可以进行流处理计算,也可以进行批处理计算,对流处理的支持更加完善。这三种框架展示了大数据流计算系统的快速了解。文章还探讨了大数据技术发展历史,从技术和业务的分离角度,引出了流计算架构对互联网在线业务开发的影响,以及未来的发展方向。值得关注的是淘宝等互联网企业尝试了一种类似流计算的、异步的、基于消息的服务调用与依赖架构,展示了未来互联网应用开发的潜在方向。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学大数据》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(30)

  • 最新
  • 精选
  • 李鼎(哲良)
    置顶
    数据流是久经考验的典型思路,在网络协议(如TCP)、数据平台这样场景,早就应用多年习以为常了。淘宝业务的应用架构升级可以认为是把这样思路应用到了业务系统开发中,把『流』作为业务表达上的一等概念和手段,并在业务架构/系统能力优化提升。 简单地说,因为业务面向数据流来编写,一方面业务逻辑表达可以自然接近业务流程;另一方面逻辑运行可以是全异步有很好的性能提升,一核心后端应用在双11线上,单机QPS提升30%,RT下降40%。流程的表达与异步/同步执行方式是分离的(如果了解过像RxJava,这句会容易理解:)。 另外,『流』也为业务系统的保护提供新的一些方法,在思路上其实和流计算平台是一样的,这对业务大型系统的稳定性来非常重要。 当然,业务的流式架构,在业务编写上有些FP风格(简单地说比如充分使用了Lambda),平时我们大家业务上主要是用命令式顺序平铺方式来表达,会有要个熟悉过程,虽然不见得有多难 :)

    作者回复: 👍🏻 欢迎有兴趣的同学进一步探讨。 李鼎的流式架构文档地址:https://github.com/oldratlee/rp-pratice

    2018-12-06
    5
    162
  • Jowin
    智慧老师,我是从事金融实时数据处理的,有一类典型需求是从原始实时数据计算出各种衍生数据,但是有状态积累。比如,当前状态是S0,收到数据A0,此时要根据(S0,A0)生成数据A1,同时要更新当前状态S1,后续的新数据再基于S1处理。团队考虑过使用Stream作为计算平台,有两个问题没想清楚怎么处理: 1)如果计算任务故障挂掉,会不会导致这期间的数据丢失? 2)另外,由于数据量也不小,差不多在每秒4~5万条消息,状态S的更新特别频繁,常规的存储在性能上没有办法满足,所以我们是采用内存+日志文件保存。如果重启的任务被分配套新的服务节点上,我们是否就还得考虑这部分数据也要迁移过去? 盼复,谢谢。

    作者回复: 1 spark streaming有容错机制,不会丢失。当然,服务器数量要充足。 2 试下Redis存储状态。

    2018-12-01
    11
  • 星凡
    文中有这么一段话:“回到流计算,固然我们可以用各种分布式技术实现大规模数据的实时流处理,但是我们更希望只针对小数据量进行业务开发,然后丢到一个大规模服务器集群上,就可以对大规模实时数据进行流计算处理。”,在下愚昧,没有get到,不用分布式技术实现大规模数据实时流处理的真正原因是?

    作者回复: 我这里可能没表达清楚,这里是说不用传统的互联网分布式技术架构,就是负载均衡、微服务调用各种技术方案进行流计算,虽然这些技术也能解决流计算的需求场景。 主要是因为,前述这些互联网分布式技术架构都是定制式的,每个流计算场景都需要进行特定的技术开发。而大数据流计算平台则是提供一个统一的计算平台,以及相关的编程框架,只需要按照这个框架开发流计算程序提交到大数据流计算平台执行,不需要关注数据如何流转、集群如何扩展,就可以完全搞定大数据流计算。

    2019-10-06
    10
  • zhj
    1面向数据流的编程在java里逐渐展露头角,之前rxjava更多的是用于android,直到hystrix才算是后端一个大规模应用的案例(也和场景有关吧,后端的大多业务都是短事物处理去构建一条数据流水线反倒显得累赘),reactor是响应式编程的另一个实现,直到spring5全面拥抱以后,才完全进入人们视野(所以技术落地离不开大厂的支持),单纯的业务层处理构造一条很短的数据流意义不大(因为数据源可能还是需要返回所有数据),spring webflux结合springdata从持久层到业务层构建了自下而上的数据流(前提是持久层驱动是非阻塞的),并利用reactor-netty(支持网络背压),理想情况下将构建一个全链路的按需处理数据流 2 数据流编程,有点类似当年面向函数->面向对象,更多的是思考方式的改变,异步和数据流都是为了正确的构建数据流间的关系而存在,不过目前貌似不支持对数据流分片并行处理

    作者回复: 👍🏻

    2019-01-08
    7
  • 🐱您的好友William🐱
    主攻人工智能,机器学习和算法实现的应该学习哪种呢?Storm,Spark还是Flink呢?

    作者回复: spark

    2018-12-04
    5
  • 李二木
    和老师探讨一个问题,对于架构设计,目前流行的是微服务,我个人觉得微服务还是有好些缺点。架构从开始的合走到现在的分,未来会不会从分又到和呢?

    作者回复: 不会

    2018-12-01
    3
  • Geek_ea2bf8
    智慧老师,通常的场景是,已经有大量的存量数据,在离线的Hadoop中,又有实时需求,依赖于历史存量数据,和当日的实时数据。这种典型场景,架构应该如何设计啊?

    作者回复: 可参考第26课

    2023-07-25归属地:上海
  • Geek_8593e5
    Flink 处理实时数据流的方式跟 Spark Streaming 也很相似,也是将流数据分段后,一小批一小批地处理。(?这没听懂) Flink是分批的吗?

    作者回复: 是的,Flink也有window函数

    2022-03-08
  • 万~~
    你好 storm spark flink 都是优秀的框架 那我们应该学习哪个呢? 都学肯定精力不够 而且难以精通
    2018-12-01
    2
    27
  • laurencezl
    智慧老师你好,这节对storm.spark.flink的介绍感觉过于概述了!后面是否会有详细的文章介绍,比如分析对比一下他们三者各自优缺点在哪里?各自试用与不适用的业务场景有哪些之类的呢?
    2018-12-04
    3
    18
收起评论
显示
设置
留言
30
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部