分布式技术原理与算法解析
聂鹏程
智载云帆 CTO,前华为分布式 Lab 资深技术专家
39663 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 43 讲
分布式技术原理与算法解析
15
15
1.0x
00:00/00:00
登录|注册

16 | 分布式计算模式之Stream:一门背锅的艺术

流计算和批量计算的区别
Spout和Bolt
数据流
Nimbus和Supervisor
公司自研流计算框架
开源流计算框架
商业级的流计算平台
音视频流
AR/VR
传感监测
网络监控
持续输出计算结果
加载流式数据进行流计算
提交流式计算作业
数据顺序无法保证
对实时性要求高
海量数据规模
数据如流水般持续、快速地到达
思考题
知识扩展
Storm的工作原理
框架和平台
应用场景
工作原理
特点
流计算

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

你好,我是聂鹏程。今天,我来继续带你打卡分布式核心技术。
在上一篇文章中,我与你介绍了分布式计算模式中的 MapReduce 模式。这种模式的核心思想是,将大任务拆分成多个小任务,针对这些小任务分别计算后,再合并各小任务的结果以得到大任务的计算结果。
这种模式下任务运行完成之后,整个任务进程就结束了,属于短任务模式。但,任务进程的启动和停止是一件很耗时的事儿,因此 MapReduce 对处理实时性的任务就不太合适了。
实时性任务主要是针对流数据的处理,对处理时延要求很高,通常需要有常驻服务进程,等待数据的随时到来随时处理,以保证低时延。处理流数据任务的计算模式,在分布式领域中叫作 Stream。
今天,我将针对流数据的处理展开分享,和你一起打卡 Stream 这种计算模式。

什么是 Stream?

近年来,由于网络监控、传感监测、AR/VR 等实时性应用的兴起,一类需要处理流数据的业务发展了起来。比如各种直播平台中,我们需要处理直播产生的音视频数据流等。这种如流水般持续涌现,且需要实时处理的数据,我们称之为流数据
总结来讲,流数据的特征主要包括以下 4 点:
数据如流水般持续、快速地到达;
海量数据规模,数据量可达到 TB 级甚至 PB 级;
对实时性要求高,随着时间流逝,数据的价值会大幅降低;
数据顺序无法保证,也就是说系统无法控制将要处理的数据元素的顺序。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

流计算是一门需要高度实时性的数据处理技术,其特点包括持续、快速到达、海量规模、对实时性要求高、数据顺序无法保证。流计算的工作原理是实时获取海量数据,进行实时分析处理,获得有价值的信息,不提供数据存储服务,数据是持续流动的。流计算适用于需要处理持续到达的流数据、对数据处理有较高实时性要求的场景,如网络监控、传感监测、AR/VR、音视频流等实时应用。主流的流计算框架包括商业级的流计算平台、开源流计算框架、各大公司自身开发的流计算框架,如Apache Storm和S4等。此外,还有支持流计算和批量计算的框架,如Spark、Flink等。流计算与批量计算并非非此即彼的关系,而是适用于不同的计算场景。流计算适用于对时延要求高的终端应用,而批量计算适用于对时延要求低的任务。通过对流计算的工作原理和核心组件的介绍,读者可以更深入地理解流计算的原理和应用。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式技术原理与算法解析》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(22)

  • 最新
  • 精选
  • Eternal
    老师课后思考题:“离线计算和批量计算,实时计算和流式计算是等价的吗?” 其实留言去已经有小伙伴总结得很好(自认为,如果有错望指正): 离线计算、批量计算、实时计算、流式计算都是要计算的,这是它们的共同特点; 批量和流式是描述计算的时候计算资源的特点的,是描述计算数据的维度。 批量计算 是等到计算数据积累到一定数量才开始计算 流式计算 是数据量很小时候就可以开始计算,有了资源就可以开始,源源不断 离线和实时是描述计算的时效性,是描述计算的维度。 离线计算 因为计算数据不能来了就计算,需要累计到一定阈值,所以按照时效性来说,计算是离线的 实时计算 因为计算数据来了就开始计算,计算没得延迟,,所以按照时效性来说,计算是实时的 批量和流式是一个维度,离线和实时是另外一个维度,但是两个维度之间又有联系: 因为目前现有的技术发展,不能大批量计算做到实时的效果,所以只能少量资源做到实时计算,且通过流式计算来达到实时的效果; 但是如果一旦当前的硬件指标和技术能力突破后,能大批量计算做到实时的效果,这也是可能的。因此我认为,我们的演进目标是想能 做到批量实时的。两个维度之间由相关联的因素来驱动它们相互变化。
    2019-11-02
    1
    14
  • Jackey
    不太好说是否等价,因为离线和实时是针对时延判断的,批量和流式是针对数据处理方式判断的。只能目前说离线和批量使用的框架、处理方法相同(实时和流式相同)。但如果以后发展出能批量进行实时数据计算的计算机就不能说批量=离线了吧
    2019-10-28
    5
  • 随心而至
    In computer science, an online algorithm[1] is one that can process its input piece-by-piece in a serial fashion, i.e., in the order that the input is fed to the algorithm, without having the entire input available from the start. In contrast, an offline algorithm is given the whole problem data from the beginning and is required to output an answer which solves the problem at hand. In computer science, streaming algorithms are algorithms for processing data streams in which the input is presented as a sequence of items and can be examined in only a few passes (typically just one). In most models, these algorithms have access to limited memory (generally logarithmic in the size of and/or the maximum value in the stream). They may also have limited processing time per item. In computer science, real-time computing (RTC), or reactive computing describes hardware and software systems subject to a "real-time constraint", for example from event to system response.[1] Real-time programs must guarantee response within specified time constraints, often referred to as "deadlines". 从维基百科的定义可以,他们侧重的点不同,个人总结如下: 1.online algorithm 只能看到数据的一部分,必须基于此做决定(可能不是最优的) 2.offline algorithm 可以看到解决问题的所有数据 3.streaming algorithms 处理序列流(内存有限,流大小有限,单个序列项处理时间有限) 4.real-time computing 强调响应时间,有时间限制。 参考自https://en.wikipedia.org/wiki/Online_algorithm 及其See also:
    2019-10-28
    4
  • 林通
    storm都快被淘汰了吧,为啥不讲讲最流行的框架呢
    2020-11-12
    2
  • 随心而至
    聂老师从一般到具体,讲的真好。 我认为批量计算是离线计算的一种实现方式;流式计算是实习计算的一种实现方式。待会我查下他们的定义看看自己理解的对不对
    2019-10-28
    2
  • 旭东(Frank)
    如果历史数据回放进行就处理也算流量处理吧;个人认为注意区别点还是处理数据的时效性,如果对处理结果不要求那么及时,新鲜。 流处理就像喝豆浆,批量处理像吃豆腐。
    2019-10-28
    2
    2
  • 信xin_n
    终于明白了 Nimbus 和 Supervisor 的关系了
    2019-11-16
    1
  • lcken
    flink也应该纳入流式计算框架。它是以流计算批数据的
    2020-04-03
  • 王涛
    MR 针对静态数据,Stream 针对动态数据。并实时性较高。
    2020-03-29
  • 王涛
    继续打卡
    2020-03-29
收起评论
显示
设置
留言
22
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部