转载

Apache Spark与Apache Flink的异同

本文简单阐述Spark与Flink的异同,并没有将对比测试加入,后面会陆续加入性能测试对比,模块对比等内容。

相同:

Flink与Spark都是数据处理平台,都是ASF阿帕奇基金会的顶级项目。他们都有广泛的应用领域,且应用常见都很多。两者都具备N多扩展,像SQL查询(Spark:Spark SQL,Flink:MRQL),图处理(Spark: GraphX, Flink: Spargel (base) and Gelly(library)),机器学习(Spark: MLlib, Flink: Flink ML)和流处理(Spark Streaming, Flink Streaming)。都可以运行在独立模式,也可以运行在Hadoop(YARN/HDFS)上。都针对内存特性有强劲的性能表现。

不同:

但是,这两个系统之间有很多不同点。

首先给两篇基本描述,帮助理解这两个框架:

  • Apache Flink is the 4G of BigData Analytics Framework  
  • Flink and Spark Similarities and Differences

相对于Flink,Spark 1.5.x之前的版本不能处理比物理内存大的数据集。

Flink是可扩展的批处理和流式数据处理的数据处理平台,设计思想主要来源于Hadoop、MPP数据库、流式计算系统等,支持增量迭代计算。

Spark是一种快速、通用的计算集群系统,Spark提出的最主要抽象概念是弹性分布式数据集(RDD),它是一个元素集合,划分到集群的各个节点上,可以被并行操作。用户也可以让Spark保留一个RDD在内存中,使其能在并行操作中被有效的重复使用。

Flink/Spark是否会取代Hadoop?

其实这个问题在Spark火热的时候也有不少人提及。首先我们看一下Hadoop架构吧。

  • HDFS: Hadoop分布式文件系统
  • YARN: 资源管理框架
  • MapReduce: Hadoop批处理框架

HDFS和YARN仍然是大数据集群必不可少的部分,这两部分是解决现有分布式系统存储和资源调度问题,是基础架构。不少的分布式计算系统仍然基于这两个系统。而MapReduce部分是计算,Flink的设计思想也是计算,只是定位在迭代计算上,所以这两者之间是有冲突的,是竞争关系。

计算的资源调度都支持YARN的方式,数据存取都支持HDFS、HBase等数据源。Flink对Hadoop有着更好的兼容,如可以支持原生HBase的接口,唯一不足是现在只支持老版本的MapReduce方法,新版本的MapReduce方法无法得到支持,Spark则不支持HBase这些接口。

所以,Flink是不会取代Hadoop的。

原文  http://www.mannyisbusy.com/apache-spark-vs-apache-flink/
正文到此结束
Loading...