zoukankan      html  css  js  c++  java
  • 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 执行复杂的大规模任务时性能更胜一筹。

  • 相关阅读:
    2019/1/17 break语句小练习
    2019/1/17goto语句小试牛刀
    python 中* 和**的作用
    python 元组编码和解码问题
    python SMTP 发送邮件
    python 自定义异常
    python websocket client 使用
    excel、xls文件读写操作
    windows10局域网实现文件共享
    django入门
  • 原文地址:https://www.cnblogs.com/charlesblc/p/9600852.html
Copyright © 2011-2022 走看看