flink和spark stream等框架的对比

Posted charlesblc

tags:

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

参考这篇文章:

https://www.sohu.com/a/196257023_470008

 

我们当时的目标就是要设计一款低延迟、exactly once、流和批统一的,能够支撑足够大体量的复杂计算的引擎。

 

Spark streaming 的本质还是一款基于 microbatch 计算的引擎。这种引擎一个天生的缺点就是每个 microbatch 的调度开销比较大,当我们要求越低的延迟时,额外的开销就越大。这就导致了 spark streaming 实际上不是特别适合于做秒级甚至亚秒级的计算。

 

Kafka streaming 是从一个日志系统做起来的,它的设计目标是足够轻量,足够简洁易用。这一点很难满足我们对大体量的复杂计算的需求。

 

Storm 是一个没有批处理能力的数据流处理器,除此之外 Storm 只提供了非常底层的 API,用户需要自己实现很多复杂的逻辑。另外,Storm 在当时不支持 exactly once。种种原因,Storm 也无法满足我们的需求。

 

最后,我们发现了 Flink,并且惊喜地发现它几乎完美满足了我们所有的需求:

a) 不同于 Spark,Flink 是一个真正意义上的流计算引擎,和 Storm 类似,Flink 是通过流水线数据传输实现低延迟的流处理;

b) Flink 使用了经典的 Chandy-Lamport 算法,能够在满足低延迟和低 failover 开销的基础之上,完美地解决 exactly once 的目标;

c)如果要用一套引擎来统一流处理和批处理,那就必须以流处理引擎为基础。Flink 还提供了 SQL/tableAPI 这两个 API,为批和流在 query 层的统一又铺平了道路。因此 Flink 是最合适的批和流统一的引擎;

d) 最后,Flink 在设计之初就非常在意性能相关的任务状态 state 和流控等关键技术的设计,这些都使得用 Flink 执行复杂的大规模任务时性能更胜一筹。

 

以上是关于flink和spark stream等框架的对比的主要内容,如果未能解决你的问题,请参考以下文章

Apache 流框架 Flink,Spark Streaming,Storm对比分析

Apache 流框架 Flink,Spark Streaming,Storm对比分析 - Part1

Apache 流框架 Flink,Spark Streaming,Storm对比分析 - Part2

低调对比Spark Streaming与Flink

数据处理框架选哪个?Spark Streaming与Flink的这些区别你都知道么

Spark Streaming和Flink的Word Count对比