FlinkFlink和Spark Streaming对比

Posted 机智的小天文

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FlinkFlink和Spark Streaming对比相关的知识,希望对你有一定的参考价值。

Flink是实时处理引擎,是基于事件驱动的。

Spark Streaming是微批次处理模型。

 

FlinkSpark Streaming
架构模型Flink 运行时架构中,最重要的就是两大组件:作业管理器(JobManger)和任务管理器 (TaskManager)采用了标准 master-slave 的结构,核心组件包括:Driver、Executor、Master 、 Worker、ApplicationMaster
任务调度逻辑流图(StreamGraph)→ 作业图(JobGraph)→ 执行图(ExecutionGraph)→ 物理图(Physical Graph)连续不断的生成微小的数据批次后,Spark Streaming会构建有向无环图 DAG,依次创建 DStreamGraph、JobGenerator、JobScheduler
时间语义处理时间、事件时间、摄入时间只支持处理时间
容错机制

检查点是 Flink 容错机制的核心。

输入端:数据源可重置读取数据偏移量,Source 算子将偏移量作为状态保存进检查点,就可以保证数据不丢。

输入端:通过幂等写入或事务写入(预写日志和两阶段提交)保证exactly-once 一致性

设置 checkpoint,发生故障并重启后,可以从上次 checkpoint 处恢复,只能使得数据不丢失,可能会产生重复处理现象,无法做到精确一次

以上是关于FlinkFlink和Spark Streaming对比的主要内容,如果未能解决你的问题,请参考以下文章

Spark Streaming快速入门之WordCount

sparkstreaming+kafka

Apache Spark 2.2.0 中文文档 - Structured Streaming 编程指南 | ApacheCN

Spark 结构化流文件源起始偏移量

FlinkFlink 批处理模式Map端数据聚合 NormalizedKeySorter

Spark Streaming性能优化: 如何在生产环境下应对流数据峰值巨变