首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
《分布式技术原理与算法解析》学习笔记Day14 ...
返回列表
发新帖
《分布式技术原理与算法解析》学习笔记Day14
[复制链接]
发表于 2023-2-17 09:22:23
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
分布式计算模式:Stream
什么是流数据?
实时性任务主要是针对流数据处理,对处理时延要求很高,通常需要常驻服务进程,等待数据的随时到来随时处理,以保证低时延。
流数据有4个特征:
数据如流水般持续、快速到达。
海量数据规模,数据量可以达到TB或者PB级别。
对实时性要求高,随着时间流逝,数据的价值会大大降低。
数据顺序无法保证。
流计算一般用于处理数据密集型应用,它实时获取来自不同数据源的海量数据,进行实时分析处理,获得有价值信息。
使用流计算进行数据处理,包括3个步骤:
提交流式计算作业。系统再运行期间,由于收集的是同一类型的数据,执行的事同一种服务,因此流式计算作业处理逻辑不可更改。如果用户停止当前作业运行后再次提交作业,由于流计算不提供数据
存储
服务,因此之前已经计算完成的数据无法重新再次计算。
加载流逝数据进行流计算。流式计算作业一旦启动将一直处于等待事件出发的状态,一旦有小批量数据进入流逝数据
存储
,系统会立刻执行计算逻辑并得到结果。
持续输出计算结果。在得到小批量数据的计算结果后,流计算会立刻将结果数据写入在线/批量系统,无需等待整体数据的计算结果。
详细的流程如下。
流计算不提供流式数据的
存储
服务,数据是持续流动的,在计算完成后会立刻丢弃。流计算适用于需要处理持续到达的数据流,对数据处理有较高实时性要求的场景,为了及时处理流数据,流计算框架必须是低延迟、可扩展、高可靠的。
Apache Storm和MapReduce有什么区别?
Hadoop上运行的是“MapReduce作业”,Storm上运行的是“计算拓扑”。MapReduce的一个作业在得到结果之后会结束,而计算拓扑在没有杀死进程前会一直运行。
Storm集群包括两种节点:主节点和工作节点:
Nimbus是整个Storm集群的守护进程,以唯一实例的方式运行在主节点上。它负责把任务分配和分发给集群的工作节点,并
监控
这些任务的执行情况,当某个节点故障时,它会重新将分配到该节点的任务转到其他节点。
Supervisor是Storm集群中的工作守护进程,每个工作节点都存在一个这样的实例。它通过ZooKeeper和Nimbus守护进程通信。
Storm的结构图如下。
Storm为数据流转换提供了基本组件Spout和Bolt:
Spout主要用于接收源数据,它会从一个外部的数据源读取数据元组,然后将它们发送到拓扑中。
Bolt负责处理输入的数据流,数据处理后可能输出新的流作为下一个Bolt的输入。每个Bolt通常只具备单一的计算逻辑,复杂的数据流转换通常需要使用多个Bolt并通过多个步骤完成。
流计算和批量计算有什么区别?
它们有各自的适用场景。批量计算适用于对时延要求低的任务,流计算适用于低延时、易扩展的场景,例如直播中音视频的处理。
下面是流计算和批量计算的详细比较。
出处: 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
回复
使用道具
举报
返回列表
浏览过的版块
SQL-Server
SAAS
人工智能
物联网
数据仓库与分析
Oracle
DevOps与敏捷开发
分布式数据库
前端开发
汕尾海湾
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表