Flink相比Spark Streaming有什么区别?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Flink相比Spark Streaming有什么区别?

Flink相比Spark Streaming有什么区别?

展开
收起
茶什i 2019-11-20 16:18:51 6563 0
3 条回答
写回答
取消 提交回答
  • 封神
    封神 09年加入阿里巴巴,阿里云高级技术专家、架构师;专注在大数据、分布式数据库领域,10年分布式研发经验;参与研发万台大数据Hadoop离线计算平台;负责研发多款阿里云一级大数据及数据库产品,如云Cassandra

    简单讲:flink是实时流,Spark Streaming是用批模拟流。

    2020-03-22 11:48:02
    赞同 展开评论 打赏
  • bigbigtree

    生态圈对比: 大数据领域一个项目的火热离不开相关的技术栈,Spark和Flink基于对底层数据和计算调度的高度抽象的内核(Core)开发出了批处理,流处理,结构化数据,图数据,机器学习等不同套件,完成对绝大多数数据分析领域的场景的支持,意欲一统大数据分析领域。统计作为计算引擎,也很好的支持了与周边大数据分析项目的兼容,

    Spark和Flink均有Scala/Java混合编程实现,Spark的核心逻辑由Scala完成,Flink的主要核心逻辑由Java完成

    支持应用语言 Flink主要支持Scala,和Java编程,部分API支持python应用 Spark主要支持Scala,Java,Python,R语言编程,部分API暂不支持Python和R

    2020-03-19 19:36:52
    赞同 展开评论 打赏
  • 茶什i

    这个问题问的很大,分几个方面回答:

    架构模型上:Spark Streaming 的task运行依赖driver 和 executor和worker,当然driver和excutor还依赖于集群管理器Standalone或者yarn等。而Flink运行时主要是JobManager、TaskManage和TaskSlot。另外一个最核心的区别是:Spark Streaming 是微批处理,运行的时候需要指定批处理的时间,每次运行 job 时处理一个批次的数据;Flink 是基于事件驱动的,事件可以理解为消息。事件驱动的应用程序是一种状态应用程序,它会从一个或者多个流中注入事件,通过触发计算更新状态,或外部动作对注入的事件作出反应。

    任务调度上:Spark Streaming的调度分为构建 DGA 图,划分 stage,生成 taskset,调度 task等步骤而Flink首先会生成 StreamGraph,接着生成 JobGraph,然后将 jobGraph 提交给 Jobmanager 由它完成 jobGraph 到 ExecutionGraph 的转变,最后由 jobManager 调度执行。

    时间机制上:flink 支持三种时间机制事件时间,注入时间,处理时间,同时支持 watermark 机制处理滞后数据。Spark Streaming 只支持处理时间,Structured streaming则支持了事件时间和watermark机制。

    容错机制上:二者保证exactly-once的方式不同。spark streaming 通过保存offset和事务的方式;Flink 则使用两阶段提交协议来解决这个问题。

    2019-11-20 16:22:29
    赞同 展开评论 打赏
问答排行榜
最热
最新
相关电子书
更多
云HBaseSQL及分析 ——Phoenix&Spark
立即下载
Spark Streaming At Bing Scale
立即下载
From Spark Streaming to Struct
立即下载