美文网首页大数据
Spark和Flink的区别?

Spark和Flink的区别?

作者: 写scala的老刘 | 来源:发表于2019-06-14 09:26 被阅读84次

Flink 和 Spark 都是基于内存计算、支持实时/批处理等多种计算模式的统一框架

1,技术理念不同

Spark的技术理念是使用微批来模拟流的计算,基于Micro-batch,数据流以时间为单位被切分为一个个批次,通过分布式数据集RDD进行批量处理,是一种伪实时。
而Flink是基于事件驱动的,它是一个面向流的处理框架, Flink基于每个事件一行一行地流式处理,是真正的流式计算. 另外他也可以基于流来模拟批进行计算实现批处理,所以他在技术上具有更好的扩展性,未来可能会成为一个统一的大数据处理引擎

2,吞吐量(throughputs)& 延时(latency)- 性能相关的指标,高吞吐和低延迟某种意义上是不可兼得的,但好的流引擎应能兼顾高吞吐&低延时

因为他们技术理念的不同,也就导致了性能相关的指标的差别,spark是基于微批的,而且流水线优化做的很好,所以说他的吞入量是最大的,但是付出了延迟的代价,它的延迟是秒级;而Flink是基于事件的,消息逐条处理,而且他的容错机制很轻量级,所以他能在兼顾高吞吐量的同时又有很低的延迟,它的延迟能够达到毫秒级;

3,时间机制

SparkStreaming只支持处理时间, 折中地使用processing time来近似地实现event time相关的业务。显然,使用processing time模拟event time必然会产生一些误差, 特别是在产生数据堆积的时候,误差则更明显,甚至导致计算结果不可用
Structured streaming 支持处理时间和事件时间,同时支持 watermark 机制处理滞后数据
Flink 支持三种时间机制:事件时间,注入时间,处理时间,同时支持 watermark 机制处理迟到的数据,说明Flink在处理乱序大实时数据的时候,优势比较大

4,编程模型,和kafka的结合

其实和Kafka结合的区别还是跟他们的设计理念有关,SparkStreaming是基于微批处理的,所以他采用DirectDstream的方式根据计算出的每个partition要取数据的Offset范围,拉取一批数据形成Rdd进行批量处理,而且该Rdd和kafka的分区是一一对应的;
Flink是真正的流处理,他是基于事件触发机制进行处理,在KafkaConsumer拉取一批数据以后,Flink将其经过处理之后变成,逐个Record发送的事件触发式的流处理
另外,Flink支持动态发现新增topic或者新增partition,而SparkStreaming和0.8版本的kafka结合是不支持的,后来跟0.10版本的kafka结合的时候,支持了,看了源码;

相关文章

  • Spark和Flink的区别?

    Flink 和 Spark 都是基于内存计算、支持实时/批处理等多种计算模式的统一框架 1,技术理念不同 Spar...

  • Flink与storm的主要区别译文。

    Qestion: Flink被用来和Spark相比,但是我认为这样的比较不太合适,把Flink窗口事件和Spark...

  • Flink和Spark比较

    Flink被用来和Spark相比,但是我认为这样的比较不太合适,把Flink窗口事件和Spark微批处理进行比较,...

  • Spark架构模式与Flink的对比

    Spark架构模式与Flink的对比 Spark和Flink都属于流批一体的分布式计算引擎。Flink属于流处理框...

  • Flink实战系列持续更新中

    本人的知识星球内发布了大量的Flink和Spark的项目实战,文章的目录如下: 更多的Flink和spark的干货...

  • Flink基本原理

    1.支持流处理的引擎:Spark和Flink Spark:基于批处理来模拟流的计算;Flink:基于流计算来模拟批...

  • 04-flink VS spark VS strom

    04-flink VS spark VS strom 流派对比 Flink API VS Spark API Fl...

  • Flink VS Spark 部署模式对比

    本文主要对Flink和Spark集群的standalone模式及on yarn模式进行分析对比。Flink与Spa...

  • filnk 学习

    并且Flink可以定制化内存管理。在这点,如果要对比Flink和Spark的话,Flink并没有将内存完全交给应用...

  • 【征服松鼠】Flink on YARN验证笔记

    关于Flink Flink架构 Flink是一种流式计算框架,与Spark的“微批”设计理念不同,Flink则将数...

网友评论

    本文标题:Spark和Flink的区别?

    本文链接:https://www.haomeiwen.com/subject/qlayfctx.html