简介
流式计算
流式计算,作为一种高频、增量、实时的数据处理模式,主要对计算方法和数据流进行处理。其功能主要体现在——对占用内存小、单次处理快、系统延迟低等要求较高的场景,以及需要在任务中持续计算的场景。
流式计算的世界中,数据是持续流动的,因此我们需要及时地对数据进行处理计算。流式计算需要先定义好计算逻辑,然后提交到流式计算系统中,等流数据到达后就会触发计算逻辑进行计算,并且这个计算作业的逻辑在整个运行期间是不可更改的
批量计算
就是对数据进行批量的处理。通常,我们都会先统一收集数据,并且把数据以数据表的形式存储到数据库中,再按照不同的计算逻辑,对全部的数据进行统一的批量处理,待全部数据处理完成后,才会输出最终的结果。
常见的流式计算框架有 strom、 spark、 flink
- Strom:Strom是一种流处理框架,一次处理一个数据流。它对数据流进行分段切分,并使用流处理操作来处理这些数据。
- Spark:Spark是一种小批处理的分布式计算框架,它对连续数据流进行抽象,称为DStream(Discretized Stream)。DStream是小批处理的RDD(弹性分布式数据集),可以通过任意函数和滑动数据窗口进行转换,实现并行操作。
- Flink:Flink是一种针对流数据和批数据的计算框架。它创造性地统一了流处理和批处理,将批数据看作流数据的一种特例。Flink的输入数据流是无界的,当把批处理看作是一种特殊的流处理时,它的输入数据流被定义为有界的。
| Storm | SparkStreaming | Flink | |
|---|---|---|---|
| 模型 | Native | Mirco-Batching | Native |
| API | 组合式 | 声明式 | 声明式 |
| 语义 | At-least-once | Exactly-once | Exectly-once |
| 容错机制 | Ack | Checkpoint | Checkpoint |
| 状态管理 | 无 | 基于DStream | 基于操作 |
| 延时 | Low | Medium | Low |
| 吞吐量 | Low | High | High |
使用广泛的Spark还是以微批的方式进行流计算。而Flink是流的方式。Apache Flink是近几年发展很快的一个用于分布式流、批处理数据处理的开源平台。它是最贴合DataFlow模型实现的分布式计算框架。基于流计算进行高性能计算,具有良好的容错、状态管理机制和高可用能力
扩展阅读
Storm,Spark和Flink简介 联系与区别_flink spark storm 对比_yann.bai的博客-优快云博客
Spark、Storm、Flink横向对比_flink spark storm 对比_程序猿小柒的博客-优快云博客
Flink01:快速了解Flink:什么是Flink、Flink架构图、Flink三大核心组件、Flink的流处理与批处理、Storm vs SparkStreaming vs Flink_做一个有趣
技术选型
Flink 作为流式计算引擎,并可进行计算任务托管等操作
Apache Flink 是一个框架和分布式处理引擎,用于在_无边界和有边界_数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。
Flink架构,是一个基于Master-Slave风格的架构,当 Flink 集群启动后,首先会启动一个 JobManger 和一个或多个的 TaskManager。由 Client 提交任务给 JobManager, JobManager 再调度任务到各个 TaskManager 去执行,然后 TaskManager 将心跳和统计信息汇报给 JobManager。 TaskManager 之间以流的形式进行数据的传输。上述三者均为独立的 JVM 进程。

Kafka 作为数据流通道
ApacheKafka是一个开源分布式事件流平台,被数千家公司使用,用于高性能数据管道、流分析、数据集成和关键任务应用程序。
<
最低0.47元/天 解锁文章
1102

被折叠的 条评论
为什么被折叠?



