搜索
搜 索
本版
文章
帖子
用户
图文精华
hadoop-2.6.0+zookeeper-3.4.6+hbase-1.0.0+hive-1.1.0完全分布 ...
首页
Portal
专题
BBS
面试
办公|编程助手
更多
登录
注册
用户组:游客
主题
帖子
云币
我的帖子
我的收藏
我的好友
我的勋章
设置
退出
导读
淘贴
博客
群组
社区VIP
APP下载
今日排行
本周排行
本周热帖
本月排行
本月热帖
会员排行
About云-梭伦科技
»
专题
›
技术学习(版主发帖区)
›
大数据学习
›
Flink
›
总结型
›
Spark与Flink:对比与分析
0
3
3
分享
Spark与Flink:对比与分析
丫丫
2015-7-26 15:52:58
发表于
总结型
[显示全部楼层]
只看大图
阅读模式
关闭右栏
3
23829
About云VIP帮助找工作和提升
问题导读
1.Spark 1.4有哪些特点?
2.
Flink 0.9有哪些特点?
3.Spark与Flink分析对比是什么?
Spark是一种快速、通用的计算集群系统,Spark提出的最主要抽象概念是弹性分布式数据集(RDD),它是一个元素集合,划分到集群的各个节点上,可以被并行操作。用户也可以让Spark保留一个RDD在内存中,使其能在并行操作中被有效的重复使用。Flink是可扩展的批处理和流式数据处理的数据处理平台,设计思想主要来源于Hadoop、MPP数据库、流式计算系统等,支持增量迭代计算。
原理
Spark 1.4特点如下所示:
1.Spark为应用提供了REST API来获取各种信息,包括jobs、stages、tasks、storage info等。
2.Spark Streaming增加了UI,可以方便用户查看各种状态,另外与Kafka的融合也更加深度,加强了对Kinesis的支持。
3.Spark SQL(DataFrame)添加ORCFile类型支持,另外还支持所有的Hive metastore。
4.Spark ML/MLlib的ML pipelines愈加成熟,提供了更多的算法和工具。
5.Tungsten项目的持续优化,特别是内存管理、代码生成、垃圾回收等方面都有很多改进。
6.SparkR发布,更友好的R语法支持。
图1 Spark架构图
图2 Flink架构图
图3 Spark生态系统图
Flink 0.9特点如下所示:
1.DataSet API 支持Java、Scala和Python。
2.DataStream API支持Java and Scala。
3.Table API支持类SQL。
4.有机器学习和图处理(Gelly)的各种库。
5.有自动优化迭代的功能,如有增量迭代。
6.支持高效序列化和反序列化,非常便利。
7.与Hadoop兼容性很好。
图4 Flink生态系统图
分析对比
性能对比
首先它们都可以基于内存计算框架进行实时计算,所以都拥有非常好的计算性能。经过测试,Flink计算性能上略好。
测试环
境:
1.CPU:7000个;
2.内存:单机128GB;
3.版本:Hadoop 2.3.0,Spark 1.4,Flink 0.9
4.数据:800MB,8GB,8TB;
5.算法:K-means:以空间中K个点为中心进行聚类,对最靠近它们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。
6.迭代:K=10,3组数据
图5 迭代次数(纵坐标是秒,横坐标是次数)
总结:Spark和Flink全部都运行在Hadoop YARN上,性能为Flink > Spark > Hadoop(MR),迭代次数越多越明显,性能上,Flink优于Spark和Hadoop最主要的原因是Flink支持增量迭代,具有对迭代自动优化的功能。
流式计算比较
它们都支持流式计算,Flink是一行一行处理,而Spark是基于数据片集合(RDD)进行小批量处理,所以Spark在流式处理方面,不可避免增加一些延时。Flink的流式计算跟Storm性能差不多,支持毫秒级计算,而Spark则只能支持秒级计算。
与Hadoop兼容
计算的资源调度都支持YARN的方式
数据存取都支持HDFS、HBase等数据源。
Flink对Hadoop有着更好的兼容,如可以支持原生HBase的TableMapper和TableReducer,唯一不足是现在只支持老版本的MapReduce方法,新版本的MapReduce方法无法得到支持,Spark则不支持TableMapper和TableReducer这些方法。
SQL支持
都支持,Spark对SQL的支持比Flink支持的范围要大一些,另外Spark支持对SQL的优化,而Flink支持主要是对API级的优化。
计算迭代
delta-iterations,这是Flink特有的,在迭代中可以显著减少计算,图6、图7、图8是Hadoop(MR)、Spark和Flink的迭代流程。
图6 Hadoop(MR)迭代流程
图7 Spark迭代流程
图8 Flink迭代流程
Flink自动优化迭代程序具体流程如图9所示。
图9 Flink自动优化迭代程序具体流程
社区支持
Spark社区活跃度比Flink高很多。
总结
Spark和Flink都支持实时计算,且都可基于内存计算。Spark后面最重要的核心组件仍然是Spark SQL,而在未来几次发布中,除了性能上更加优化外(包括代码生成和快速Join操作),还要提供对SQL语句的扩展和更好地集成。至于Flink,其对于流式计算和迭代计算支持力度将会更加增强。无论是Spark、还是Flink的发展重点,将是数据科学和平台API化,除了传统的统计算法外,还包括学习算法,同时使其生态系统越来越完善。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
已有(3)人评论
电梯直达
正序浏览
zhangyi_bac
发表于 2015-7-26 21:40:18
谢谢分享
回复
使用道具
举报
显身卡
hahaxixi
发表于 2015-7-27 12:30:56
nice!!!!
回复
使用道具
举报
显身卡
allenH
发表于 2015-8-11 16:06:34
学习了。
回复
使用道具
举报
显身卡
还有一些帖子被系统自动隐藏,点此展开
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
发表新帖
丫丫
实习版主
关注
140
主题
175
帖子
29
粉丝
TA的主题
Sqoop1和Sqoop2的对比
2017-2-20
spark调度分析: DAGScheduler, TaskScheduler, SchedulerBackend
2017-2-13
Spark RDD API中的Map和Reduce
2017-2-6
为公司挖掘潜在客户的方法及相关介绍
2017-1-23
大数据框架【spark,hadoop,hive等】数据清洗适用场景介绍、对比及源码实现
2017-1-16
24小时热文
Flink CDC:新一代实时数据集成框架
蚂蚁面试就是不一样
如何高效学习
人情世故速查速用大全集
框架思维
关闭
推荐
/2
中文版ChatGPT
1.无需魔法 2.提高编程效率 3.提高文档能力
查看 »
新手帮助
新手帮助:注册遇到问题,领取资源,加入铁粉群,不会使用搜索,如何获取积分等
查看 »
意见
反馈