Spark与Flink大数据处理引擎对比分析!

  大数据技术正飞速地发展着,催生出一代又一代快速便捷的大数据处理引擎,无论是Hadoop、Storm,还是后来的Spark、Flink。然而,毕竟没有哪一个框架可以完全支持所有的应用场景,也就说明不可能有任何一个框架可以完全取代另一个。今天,将从几个项出发着重对比Spark与Flink这两个大数据处理引擎,探讨其两者的区别。

  

  一、Spark与Flink几个主要项目的对比与分析

  1.性能对比

  测试环境:

  CPU:7000个

  内存:单机128GB

  版本:Hadoop 2.3.0,Spark 1.4,Flink 0.9

  数据:800MB,8GB,8TB

  算法:K-means:以空间中K个点为中心进行聚类,对最靠近它们的对象归类,通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果

  迭代:K=10,3组数据

  

  相同点:Spark与Flink都运行在Hadoop YARN上,两者都拥有非常好的计算性能,因为两者都可以基于内存计算框架以进行实时计算。

  相异点:结合上图三者的迭代次数(纵坐标是秒,横坐标是次数)图表观察,可得出在性能上,呈现Flink Spark Hadoop(MR)的结果,且迭代次数越多越明显。Flink之所以优于Spark和Hadoop,最主要的原因是Flink支持增量迭代,具有对迭代自动优化的功能。

  结果:Flink胜。

  2.流式计算比较

  相同点:Spark与Flink都支持流式计算。

  相异点:Spark是基于数据片集合(RDD)进行小批量处理的,它只能支持秒级计算,所以Spark在流式处理方面,不可避免会增加一些延时。Flink是一行一行的,它的流式计算跟Storm的性能差不多,是支持毫秒级计算的。

  结果:Flink胜。

  3.与Hadoop兼容性对比

  相同点:Spark与Flink的数据存取都支持HDFS、HBase等数据源,而且,它们的计算资源调度都支持YARN的方式。

  相异点:Spark不支持TableMapper和TableReducer这些方法。Flink对Hadoop有着更好的兼容,如可以支持原生HBase的TableMapper和TableReducer,唯一不足是新版本的MapReduce方法无法得到支持,现在只支持老版本的MapReduce方法。

  结果:Flink胜。

  4.SQL支持对比

  相同点:两者都支持SQL。

  相异点:从范围上说,Spark对SQL的支持比Flink的要大一些,而且Spark支持对SQL的优化(包括代码生成和快速Join操作),还要提供对SQL语句的扩展和更好地集成。Flink主要支持对API级的优化。

  结果:Spark胜。

  5.计算迭代对比

  相同点:如下图所示,Hadoop(MR)、Spark和Flink均能迭代。

  

  相异点:Flink特有delta-iterations,这让它能够在迭代中显著减少计算。并且Flink具有自动优化迭代程序功能,具体流程如下图所示。

  

  结果:Flink胜。

  6.社区支持对比

  相同点:Spark与Flink均有社区支持。

  相异点:Spark社区活跃度比Flink高很多。

  结果:Spark胜。

  二、Spark与Flink的特点剖析

  1.Spark 1.4的6大特点

  众所周知,提出最主要抽象概念——弹性分布式数据集(RDD)的是Spark。RDD是一个元素集合,将其划分到集群的各个节点上可以被并行操作。当然,用户也可以让Spark保留一个RDD在内存里,让其能在并行操作中被有效地重复使用。Spark是实至名归的快速、通用的计算集群系统。结合下图Spark架构图与生态系统图,可以看出Spark 1.4的6大特点:

  ①Spark SQL(DataFrame)添加了ORCFile类型支持以及所有的Hive metastore支持;

  ②增加了UI的Spark Streaming,使得用户查看各种状态更加地便捷,随着和Kafka融合的加深,对Kinesis的支持也加强了很多;

  ③Spark之所以提供了更多的算法和工具,是因为Spark ML/MLlib的ML pipelines越来越成熟;

  ④使用了REST API,Spark可以为应用获取如jobs、stages、storage info、tasks等各种信息;

  ⑤内存管理、代码生成、垃圾回收等方面都有很多改进,这些都得益于Tungsten项目的持续优化;

  ⑥SparkR的发布让Spark得到更友好的R语法的支持。

  2.Flink 0.9的7大特点

  作为可扩展的批处理和流式数据处理的数据处理平台,Flink的设计思想主要来源于Hadoop、MPP数据库、流式计算系统等。支持增量迭代计算是Flink最大的特点,而且其对于迭代计算和流式计算的支持力度都将会加强。结合下图Flink架构图与生态系统图,可以看出Flink 0.9的7大特点:

  

  ①搭载DataSet API,让Flink支持Java、Python和Scala等多种编程语言;

  ②同样地,搭载DataStream API,让Flink支持Java和Scala;

  ③Flink ML和Gelly提供机器学习和图处理的多种库;

  ④Table API能够支持类SQL;

  ⑤Flink能够支持高效序列化、反序列化;

  ⑥Flink和Hadoop相互兼容;

  ⑦Flink拥有自动优化迭代的功能。

  放眼未来,无论是Spark还是Flink,两者的发展重点都将是数据科学和平台API化,使其生态系统越来越完善。亦或许,会有更新的大数据处理引擎出现,谁知道呢。

?

原文地址:https://www.cnblogs.com/qfjavabd/p/10615082.html

时间: 2024-08-05 16:24:50

Spark与Flink大数据处理引擎对比分析!的相关文章

大二层技术对比分析(组图)

大二层技术对比分析(组图) 转载 2015-8-9 传统的数据中心汇聚交换机作为网关,为了提高HA性能,基本都采用双机冗余建设模式.随着数据中心进入虚拟化时代,接入服务器的规模飞速增加,虚拟服务器的规模出现级数增加.同时,更多的客户要求在同一个二层网络内,任意两台虚拟服务器之间要做无阻塞的快速交换.这就导致作为网关的汇聚交换机出现容量不足而降低整网性能,因此需要采用新得技术有效的增加汇聚交换机的容量,同时还必须采用有效的技术提高接入到汇聚交换机之间的带宽利用率.前面几篇文章介绍了各种可用于的数据

下一代大数据处理引擎,阿里云实时计算独享模式重磅发布

摘要: 11月14日,阿里云重磅发布了实时计算独享模式,即用户独享一部分物理资源,这部分资源在网络/磁盘/CPU/内存等资源上跟其他用户完全独立,是实时计算在原有共享模式基础上的重大升级.(观看实时计算发布会直播:https://yq.aliyun.com/live/591) 独享模式优点更加突出1.UDX开放:实时计算的共享模式是多个用户共享一个物理机群,在网络/磁盘层面没有办法做到完全隔离. 11月14日,阿里云重磅发布了实时计算独享模式,即用户独享一部分物理资源,这部分资源在网络/磁盘/C

互联网十大数据分析方法-对比分析

什么是对比分析对比分析是数据分析中一种基础分析方法.对于互联网产品经常关注的转化率指标,如果转化率为5%,不能说明这个指标的好坏,如果该细分行业的行业平均转化率为10%,通过对比其实指标还是有很大优化空间的.用户行为分析和APP数据分析中都会大量的用到对比分析方法.对比分析是对一个孤立的指标找到一个参照系,否则一个鼓励的指标其实没有任何实际的意义.常见对比分析方法时间序列对比: 按照时间序列对数据进行对比分析,分析产品运营数据变化趋势,从而给产品运营提供决策.同比:同比一般情况下是今年第n月与去

新一代大数据处理引擎 Apache Flink

https://www.ibm.com/developerworks/cn/opensource/os-cn-apache-flink/index.html 大数据计算引擎的发展 这几年大数据的飞速发展,出现了很多热门的开源社区,其中著名的有 Hadoop.Storm,以及后来的 Spark,他们都有着各自专注的应用场景.Spark 掀开了内存计算的先河,也以内存为赌注,赢得了内存计算的飞速发展.Spark 的火热或多或少的掩盖了其他分布式计算的系统身影.就像 Flink,也就在这个时候默默的发

Flink流式引擎技术分析--大纲

Flink简介 Flink组件栈 Flink特性 流处理特性 API支持 Libraries支持 整合支持 Flink概念 Stream.Transformation.Operator Parallel Dataflow Task.Operator Chain Window Time Flink架构 JobManager TaskManager Client Flink调度 逻辑调度 物理调度 Flink容错 Flink的集群部署 环境准备 集群安装 集群启动 案例测试 整体执行过程 数据流图的

5种必知的大数据处理框架技术

大数据是收集.整理.处理大容量数据集,并从中获得见解所需的非传统战略和技术的总称.虽然处理数据所需的计算能力或存储容量早已超过一台计算机的上限,但这种计算类型的普遍性.规模,以及价值在最近几年才经历了大规模扩展. 本文将介绍大数据系统一个最基本的组件:处理框架.处理框架负责对系统中的数据进行计算,例如处理从非易失存储中读取的数据,或处理刚刚摄入到系统中的数据.数据的计算则是指从大量单一数据点中提取信息和见解的过程. 下文将介绍这些框架: · 仅批处理框架: Apache Hadoop · 仅流处

引爆Spark大数据引擎的七大工具

原文名称:7 tools to fire up Spark's big data engine Spark正在数据处理领域卷起一场风暴.让我们通过本篇文章,看看为Spark的大数据平台起到推波助澜的几个重要工具. Spark生态系统众生相 Apache Spark不仅仅让大数据处理起来更快,还让大数据处理起来更简单.功能更强大.更方便.Spark并非只是一项技术,它结合了诸多部分,新的功能和性能改进不断添加进来,每个部分都在不断完善之中. 本文介绍了Spark生态系统的每个主要部分:每个部分的功

共筑Spark大数据引擎的七大工具

Spark正在数据处理领域卷起一场风暴.让我们通过本篇文章,看看为Spark的大数据平台起到推波助澜的几个重要工具. Spark生态系统众生相Apache Spark不仅仅让大数据处理起来更快,还让大数据处理起来更简单.功能更强大.更方便.Spark并非只是一项技术,它结合了诸多部分,新的功能和性能改进不断添加进来,每个部分都在不断完善之中.本文介绍了Spark生态系统的每个主要部分:每个部分的功能,为什么很重要,是如何发展的,在哪方面不尽如人意,以及可能会往哪个方向发展. ?Spark Cor

大数据处理的关键架构

大数据如火如荼的火热着,互联网上资源又让人眼花缭乱不知如何下手,对于新手和准备成为大数据工程师的童鞋更是如此,此博文总结了网上一些知识,希望对大家有帮助. 下图是大数据处理的各个架构层: 以下一一简介各个层,使大家对这块知识有个总体把握: 一.数据存储层 宽泛地讲,据对一致性(consistency)要求的强弱不同,分布式数据存储策略,可分为ACID和BASE两大阵营. ACID是指数据库事务具有的四个特性:原子性(Atomicity).一致性(Consistency).隔离性(Isolatio