天天看点

2023-181,#每日一悟每日进步##大数据#大数据流计算工具摘录学习:1、Storm计算模型称为Topology,类

作者:DevOps工程师老林

2023-181,#每日一悟每日进步##大数据#

大数据流计算工具摘录学习:

1、Storm

计算模型称为Topology,类似Map-Reduce,不同在于Topology会永远执行下去。

Topology由Spout和Bold组成的有向无环图,每个节点都会对流上的数据进行一定的处理,然后传递给后续节点做下一步处理。

Spout是Stream的起点,是产生Tuple的源头,它会对某类输入源如Kafka,把数据封装成Tuple的形式吐给后续的一个或多个Bolt进行处理。

Bolt是Topology中进行数据处理的单元,可以过滤、清洗、转换、聚合和关联各种操作。理想情况下,每一个Bolt对于Tuple的处理应该是一个简单的边界清晰的操作。

Stream指一个没有边界的、永远向前流动的数据流。

Tuple是Storm中对数据的统一封装格式,可以包含多个预定义的基本类型字段。

2、Spark Streaming

以Micro-batch方式工作,实时性比Storm差。

(1)DStream编程模型

将极短时间间隔(Batch Duration)内的数据组织成一个RDD,流上的各种操作都是以RDD为基本单位进行的。RDD的计算分为Transformation和action两大类。

支持窗口操作机制,窗口的大小和移动的步幅必须是Batch Duration的整数倍。

(2)Structured Streaming编程模型

把数据流当做一个没有边界的数据表来对待,可以在流上使用Spark SQL进行流处理,大大降低了流计算的技术门槛。流上的计算会被转化为数据表上的查询,每次的查询结果会作为一个新的“数据表”,后续的操作将在新的数据表上执行。

同样支持窗口操作,新的窗口操作可以基于“事件时间”,而不再是数据进入流的时间,实用性更高。

从Spark 2.3开始,支持stream-stream Join,包括内关联和外关联。

3、Flink

编程模型与Spark DStream的API类似,流的起点往往是数据的输入源,称为Source,针对Stream的操作称为Transformation,流的终点是数据的输出目的地,称为Sink。

支持窗口操作,且细化时间为事件时间(事件创建的时间)、摄取时间(事件进入Flink数据流的时间)、处理时间(每一个操作在执行的本地时间)。

整体架构从下到上分别为:Stateful Stream Processing、DataStream/DataSet API、Table API、SQL。

Flink以流计算内核为基础,将数据处理能力从流计算拓展到了批处理。

2023-181,#每日一悟每日进步##大数据#大数据流计算工具摘录学习:1、Storm计算模型称为Topology,类
2023-181,#每日一悟每日进步##大数据#大数据流计算工具摘录学习:1、Storm计算模型称为Topology,类
2023-181,#每日一悟每日进步##大数据#大数据流计算工具摘录学习:1、Storm计算模型称为Topology,类

继续阅读