来源 | 大数据技术与架构(import_bigdata)

作者 | 王知无,阿里巴巴高级大数据开发工程师,先后在京东、阿里等大型互联网公司从事大数据平台、实时计算和离线计算中间件和业务平台开发。

2018和2019年是大数据领域蓬勃发展的两年,自2019年伊始,实时流计算技术开始步入普通开发者视线,各大公司都在不遗余力地试用新的流计算框架,实时流计算引擎Spark Streaming、Kafka Streaming、Beam和Flink持续火爆。

最近Spark社区,来自Databricks、NVIDIA、Google以及阿里巴巴的工程师们正在为Apache Spark 3.0添加原生的GPU调度支持,参考(SPARK-24615和SPARK-24579)该方案将填补了Spark在GPU资源的任务调度方面的空白,极大扩展了Spark在深度学习、信号处理的应用场景。

与此同时,2019年1月底,阿里巴巴内部版本Blink正式开源!一石激起千层浪,Blink开源的消息立刻刷爆朋友圈,整个大数据计算领域一直以来由Spark独领风骚,瞬间成为两强争霸的时代。那么未来Spark和Blink的发展会碰撞出什么样的火花?谁会成为大数据实时计算领域最亮的那颗星?

我们接下来看看Spark和Flink各自的优劣和主要区别。

底层机制

Spark的数据模型是弹性分布式数据集 RDD(Resilient Distributed Dattsets),这个内存数据结构使得spark可以通过固定内存做大批量计算。初期的Spark Streaming是通过将数据流转成批(micro-batches),即收集一段时间(time-window)内到达的所有数据,并在其上进行常规批处,所以严格意义上,还不能算作流式处理。但是Spark从2.x版本开始推出基于 Continuous Processing Mode的 Structured Streaming,支持按事件时间处理和端到端的一致性,但是在功能上还有一些缺陷,比如对端到端的exactly-once语义的支持。

一个典型的Spark DAG示意图

Flink是统一的流和批处理框架,基本数据模型是数据流,以及事件(Event)的序列,Flink从设计之初秉持了一个观点:批是流的特例。每一条数据都可以出发计算逻辑,那么Flink的流特性已经在延迟方面占得天然优势。

一个典型的Flink workflow示意图

Flink还提供了一个独特的概念叫做有状态的计算,它被用来处理一种情况:数据的处理和之前处理过的数据或者事件有关联。比如,在做聚合操作的时候,一个批次的数据聚合的结果依赖于之前处理过的批次。早期的Spark用户会经常受此类问题所困扰,直到Structured Streaming的出现才得已解决。

Flink从一开始就引入了state的概念来处理这种问题。为状态计算提供了一个通用的解决方案。

周边生态

在大数据领域,任何一个项目的火爆都被离不开完善的技术栈,Spark和Flink都基于对底层数据和计算调度的高度抽象的内核上开发出了批处理,流处理,结构化数据,图数据,机器学习等不同套件,完成对绝大多数数据分析领域的场景的支持,意图统一数据分析领域。

Flink和Spark都是由Scla和Java混合编程实现,Spark的核心逻辑由Scala完成,而Flink的主要核心逻辑由Java完成。在对第三方语言的支持上,Spark支持的更为广泛,Spark几乎完美的支持Scala,Java,Python,R语言编程。

Spark周边生态(图来源于官网)

与此同时,Flink&Spark官方都支持与存储系统如HDFS,S3的集成,资源管理/调度Yarn,Mesos,K8s等集成,数据库Hbase,Cassandra,消息系统Amazon,Kinesis,Kafka等。

Flink周边生态(图来源于官网)

在最近的Spark+AI峰会上,Databricks公司推出了自己的统一分析平台(Unified Analytics Platform),目标是使户在一个系统里解决尽可能多的数据需求。Flink的目标和Spark一致,包含AI的统一平台也是Flink的发展方向,从技术上来看,Flink是完全有能力支持对机器学习和深度学习的集成,但目前来看,Flink仍有很长的路要走。

未来趋势

2018年是机器学习和深度学习元年,ML在数据处理领域占比越来越重。Spark和Flink在做好实时计算的同时,谁能把握住这次机会就可以在未来的发展中占得先机。另外随着5G的发展,网络传输不再是瓶颈之时,IOT的爆发式发展也将会是实时计算需求爆发之时,届时Flink在流式计算中的天然优势将发挥的淋漓尽致,Blink的开源和阿里巴巴对Blink的加持无疑又给Flink未来的发展注入一针强心剂。

总结

Spark和Flink发展至今,基本上已经是实时计算领域的事实标准。两者在易用性和生态系统建设上都投入了大量的资源,是现在和未来一段时间内大数据领域最有有力的竞争者。二者的发展是竞争中伴随着互相促进,在与机器学习集成和统一处理平台的建设上双方各有优劣,谁能尽早补齐短板就会在未来的发展中占得优势。对于普通大数据领域的开发者而言,当下也是最好的时代,可以见证两大数据引擎的蓬勃发展,除了学习别无选择,这何尝不是是一种幸运?

参考目录:

http://datastrophic.io/core-concepts-architecture-and-internals-of-apache-spark

https://databricks.com/spark/about

https://ci.apache.org/projects/flink/flink-docs-stable/release-notes/flink-1.7.html

http://spark.apache.org

CSDN原文链接:

https://blog.csdn.net/u013411339/article/details/88544359

在线分享会

周五晚8点

拿下斯坦福和剑桥双offer,00后的算法学习之路

推荐荐阅读:

  • Google又逆天:语音输入离线实时输出文字,仅占80MB!然而……

  • 西工大开源拥挤人群数据集生成工具,大幅提升算法精度 | CVPR 2019

  • R和Python谁更好?这此让你「鱼与熊掌」兼得

  • 10行Python,搭建一个游戏AI | 视频教程

  • Node.js 与 JavaScript 基金会正式合并,JS 喜提新主场

  • 云计算时代运维的出路在哪?

  • 30岁的万维网活不长了! 蒂姆·伯纳斯·李要借去中心化亲手杀死它, 你再也不用担心...

  • 互联网裁员潮亲历者:那些阵痛、挣扎与去向

  • 没有一个人,能躲过程序员的诱惑!

❤点击“阅读原文”,查看历史精彩文章。

开源的Blink和Spark3.0,谁将称霸大数据领域?相关推荐

  1. 从0到1搭建大数据平台之数据计算

    文章目录 前言 一.传统的数据计算 二.Hadoop的崛起 三.离线计算 MapReduce Hive SparkSQL 四. 实时计算 Spark Streaming Flink 总结 前言 大家好 ...

  2. 从0到1搭建大数据平台之数据存储

    大家好,我是脚丫先生 (o^^o) 近日参加了集团大数据平台之流批一体的建设. 流批一体,从调研直至研发.日日夜夜,泪流满面. 作业以:sql.jar.组件拖拽三种方式去提交实时任务,终究还是攻克. ...

  3. 五个篇章讲明白如何从0到1搭建大数据平台

    大家好,我是一哥,整理了一下之前写的搭建大数据平台的5个篇章,请大家收藏,文末可以获取完整PDF版本. 01 如何从0到1搭建大数据平台 大数据时代这个词被提出已有10年了吧,越来越多的企业已经完成了 ...

  4. 从0到1构建大数据生态系列1:数据蛮荒中的拓荒之举

    缘起 我们都知道,当前大数据的需求基本属于遍地开花.无论是帝都.魔都,还是广州.深圳,亦或是全国其他各地,都在搞大数据:不管是不到百人的微小公司,还是几百上千人的中型公司,亦或是上万的大型公司,都在需 ...

  5. 【阿里内部应用】基于Blink为新商业调控打造实时大数据交互查询服务

    基于Blink为新商业调控打造实时大数据交互查询服务 案例与解决方案汇总页: 阿里云实时计算产品案例&解决方案汇总 从IT到DT.从电商到新商业,阿里巴巴的每个细胞都存在大数据的DNA,如何挖 ...

  6. 开源技术、开放使用、业务导向的大数据平台,助力银行数字化转型

    随着技术的高速迭代,金融科技企业早已不再是简单的金融+互联网模式,而是在大数据.人工智能和云计算加持之下逐渐进入下半场. 飞贷金融科技作为国内首家覆盖业务全流程.运营全体系的移动信贷整体技术服务商,通 ...

  7. 《Python Spark 2.0 Hadoop机器学习与大数据实战_林大贵(著)》pdf

    <Python+Spark 2.0+Hadoop机器学习与大数据实战> 五星好评+强烈推荐的一本书,虽然内容可能没有很深入,但作者非常用心的把每一步操作详细的列出来并给出说明,让我们跟着做 ...

  8. spark python教程_Python Spark 2.0 Hadoop机器学习与大数据实战 完整pdf_IT教程网

    资源名称:Python Spark 2.0 Hadoop机器学习与大数据实战 完整pdf 第1章 Python Spark机器学习与Hadoop大数据 1 第2章 VirtualBox虚拟机软件的安装 ...

  9. 开源项目推荐:物联网消息引擎EMQ X/大数据平台TDengine/可视化平台Grafana/dgiot

    1.EMQ X EMQ X Broker 是基于高并发的 Erlang/OTP 语言平台开发,支持百万级连接和分布式集群架构,发布订阅模式的开源 MQTT 消息服务器.EMQ X Broker 在全球 ...

最新文章

  1. CodeForces - 1366D Two Divisors(数论)
  2. python安装环境傻瓜式安装_前后端分离——前端开发环境傻瓜式一步到位 nodejs ruby python nginx 安装搭建配置...
  3. 一图看懂云栖大会「云原生」发布
  4. 让vs编写的程序在未安装vs的电脑上使用的一种方法
  5. Java使用Springboot集成Es官方推荐(RestHighLevelClient)
  6. Dubbo(四) 消费者、提供者工程搭建并使用注解实现远程调用
  7. python加上子类的特性_Python里的元编程:控制产生的实例对象的特性以及实例
  8. Google惊人研究:一组图片,就能强迫神经网络执行其他任务
  9. 3万字《SpringBoot微服务开发——Shiro(安全)》
  10. 【map知识点总结】
  11. Android开发指南-窗口小部件(App Widgets)
  12. java 短信验证码 安全_有关java短信验证码的小知识
  13. 大学计算机考试59分,大学期末考59分,你会找老师理论吗?很多人都猜错
  14. 用piranha配置LVS
  15. phpmyadmin没有接收到要导入的数据.可能是文件名没有提交,也可能是文件大小超出 PHP 限制.
  16. 电信物联网平台SOTA升级(软件升级)的全流程说明
  17. 解决电脑usb接口无法识别u盘,键盘,鼠标的问题。
  18. 10.5日饿了么复活了,大家凑合用用吧~(偶尔更新~)
  19. MySQL数据清理有技巧,这么破
  20. 百度之星资格赛1003 度度熊与邪恶大魔王(dp)--2017

热门文章

  1. HAProxy+Keepalived高可用负载均衡配置
  2. DFS:图的联通块 AOJ-0118 Property Distribution
  3. ROS控制无人机offboard模式
  4. Matlab 快捷键 设置
  5. Linux驱动之LCD驱动编写
  6. 当前上下文中不存在viewbag
  7. android小技巧(二)
  8. linux oracle修改编码utf8
  9. [恢]hdu 2015
  10. vj p1042捕风捉影 题解