本文主要引用并整理知乎作者billen pan
2016年的文章。
对比项目 | 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时代,将纯流式计算引入大数据 | 一开始就着眼于流式处理 |