Spark vs Flink

本文主要引用并整理知乎作者billen pan2016年的文章。

对比项目 Spark Flink
抽象 流式RDD的抽象,DStream 独立的DataSet(批处理)和DataStream对象
内存管理 1.5版本开始用tungsten,精确控制内存,不再直接用Java的内存管理 一直是自己管理内存
语言 scala开发,支持Java,Python,R Java开发,支持Scala
API 模仿scala的Collection API 模仿scala的Collection API
流式处理 微批当作流,准实时 批是流处理的特殊情况,类似storm,是event level的流处理
窗口 仅支持基于Processing Time的窗口 不仅支持Processing Time,还支持Data Time的窗口
数据源支持 比较丰富,NoSQL,Parquet,ORC等 较少,除了HDFS,还有MogoDB,以及通过FileInputFormat/FileOutputFormat作数据源聚合
SQL支持 比较成熟 也已经支持,作为最高层面的操作抽象
机器学习支持 执行模型是DAG,不支持有环的机器学习 支持有环的机器学习
出身 诞生于Map-Reduce时代,将纯流式计算引入大数据 一开始就着眼于流式处理

你可能感兴趣的:(Spark vs Flink)