文章目录

  • 前言
    • 1. 数据处理架构
    • 2. 数据模型和运行架构
    • 3. Spark 还是 Flink?

前言

  Apache Spark 是一个通用大规模数据分析引擎。它提出的内存计算概念让大家得以从 Hadoop 繁重的 MapReduce 程序中解脱出来。除了计算速度快、可扩展性强,Spark 还为批处理(Spark SQL)、流处理(Spark Streaming)、机器学习(Spark MLlib)、图计算(Spark GraphX)提供了统一的分布式数据处理平台,整个生态经过多年的蓬勃发展已经非常完善。
  而Flink在实时处理领域异军突起,想学习一个大数据处理框架,到底选择 Spark,还是 Flink ?


1. 数据处理架构

  批处理针对的是有界数据集,非常适合需要访问海量的全部数据才能完成的计算工作,一般用于离线统计。
  流处理主要针对的是数据流,特点是无界、实时, 对系统传输的每个数据依次执行操作,一般用于实时统计。

  Spark 以批处理为根本,并尝试在批处理之上支持流计算;在 Spark 的世界观中,离线数据是一个大批次,而实时数据则是由一个一个无限的小批次组成的。所以对于流处理框架 Spark Streaming 而言,其实并不是真正意义上的“流”处理,而是“微批次”(micro-batching)处理
  而 Flink 则认为,流处理才是最基本的操作,批处理也可以统一为流处理。在 Flink 的世界观中,实时数据是标准的、没有界限的流,而离线数据则是有界限的流。

(1)无界数据流(Unbounded Data Stream)
所谓无界数据流,就是有头没尾,数据的生成和传递会开始但永远不会结束。所以对于无界数据流,必须连续处理,也就是说必须在获取数据后立即处理。在处理无界流时,为了保证结果的正确性,必须能够做到按照顺序处理数据。

(2)有界数据流(Bounded Data Stream)
有界数据流有明确定义的开始和结束,所以可以通过获取所有数据来处理有界流。处理有界流就不需要严格保证数据的顺序了,因为可以对有界数据集进行排序。有界流的处理也就是批处理

  一般来说,Spark 基于微批处理的方式做同步总有一个“攒批”的过程,所以会有额外开销,因此无法在流处理的低延迟上做到极致。在低延迟流处理场景,Flink 已经有明显的优势。而在海量数据的批处理领域,Spark 能够处理的吞吐量更大,加上其完善的生态和成熟易用的 API,目前同样优势比较明显。


2. 数据模型和运行架构

  Spark 和 Flink 在底层实现最主要的差别就在于数据模型不同:

  Spark 底层数据模型是弹性分布式数据集(RDD),Spark Streaming 进行微批处理的底层接口 DStream,实际上处理的也是一组组小批数据 RDD 的集合。可以看出,Spark 在设计上本身就是以批量的数据集作为基准的,更加适合批处理的场景。

  而 Flink 的基本数据模型是数据流(DataFlow),以及事件(Event)序列。Flink 基本上是完全按照 Google 的 DataFlow 模型实现的,所以从底层数据模型上看,Flink 是以处理流式数据作为设计目标的,更加适合流处理的场景。

  数据模型不同,对应在运行处理的流程上,自然也会有不同的架构。Spark需要将任务对应的 DAG 划分阶段(Stage),一个完成后经过 shuffle 再进行下一阶段的计算。而Flink 是标准的流式执行模式,一个事件在一个节点处理完后可以直接发往下一个节点进行处理。


3. Spark 还是 Flink?

  如果在工作中需要从 Spark 和 Flink 这两个主流框架中选择一个来进行实时流处理,更加推荐使用 Flink,主要的原因有:

Flink 的延迟是毫秒级别,而 Spark Streaming 的延迟是秒级延迟

Flink 提供了严格的精确一次性语义保证

Flink 的窗口 API 更加灵活、语义更丰富

Flink 提供事件时间语义,可以正确处理延迟数据

Flink 提供了更加灵活的对状态编程的 API


flink Spark 和 Flink对比相关推荐

  1. Spark与Flink:对比与分析

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

  2. 大数据框架对比:Hadoop、Storm、Samza、Spark和Flink——flink支持SQL,待看

    简介 大数据是收集.整理.处理大容量数据集,并从中获得见解所需的非传统战略和技术的总称.虽然处理数据所需的计算能力或存储容量早已超过一台计算机的上限,但这种计算类型的普遍性.规模,以及价值在最近几年才 ...

  3. Spark、Flink、CarbonData技术实践最佳案例解析

    当前无论是传统企业还是互联网公司对大数据实时分析和处理的要求越来越高,数据越实时价值越大,面向毫秒~秒级的实时大数据计算场景,Spark和Flink各有所长.CarbonData是一种高性能大数据存储 ...

  4. 上:Spark VS Flink – 下一代大数据计算引擎之争,谁主沉浮?

    作者简介 王海涛,曾经在微软的 SQL Server和大数据平台组工作多年.带领团队建立了微软对内的 Spark 服务,主打 Spark Streaming.去年加入阿里实时计算部门,参与改进阿里基于 ...

  5. 从Hadoop到Spark和Flink,大数据处理框架十年激荡发展史

    当前这个数据时代,各领域各业务场景时时刻刻都有大量的数据产生,如何理解大数据,对这些数据进行有效的处理成为很多企业和研究机构所面临的问题.本文将从大数据的基础特性开始,进而解释分而治之的处理思想,最后 ...

  6. 从Hadoop到Spark、Flink,大数据处理框架十年激荡发展史

    abstract: 当前这个数据时代,各领域各业务场景时时刻刻都有大量的数据产生,如何理解大数据,对这些数据进行有效的处理成为很多企业和研究机构所面临的问题.本文将从大数据的基础特性开始,进而解释分而 ...

  7. 从Hadoop到Spark、Flink,大数据处理框架十年激荡发展史!

    当前这个数据时代,各领域各业务场景时时刻刻都有大量的数据产生,如何理解大数据,对这些数据进行有效的处理成为很多企业和研究机构所面临的问题.本文将从大数据的基础特性开始,进而解释分而治之的处理思想,最后 ...

  8. Storm,Spark和Flink简介 联系与区别

    storm.spark streaming.flink是三个最著名的分布式流处理框架,并且都是开源的分布式系统,具有低延迟.可扩展和容错性诸多优点,允许你在运行数据流代码时,将任务分配到一系列具有容错 ...

  9. spark和flink是什么、区别、共同点以及替换性

    目录 声明 1. spark spark 计算速度快 Spark与MR 2. flink flink是什么 flink特点 flink能做什么 四.flink , mapreduce , Spark ...

最新文章

  1. 问题 | 基于神经网络的高考、中考、考研试题预测
  2. robodk导出html错误,在优傲机器人示教器上调试RoboDK机器人程序
  3. (转载)Unity真机调试
  4. CodeForces - 1000D Yet Another Problem On a Subsequence(动态规划+组合数学)
  5. Abp框架准备加入.NET Foundation
  6. 南京打造大数据创新孵化平台
  7. wechat code miniprogram 没有找到可以构建的 NPM 包
  8. VC++中Format用法
  9. 从内存分配分析程序初始化和存储
  10. PDF在线预览 (flexpaper+swftools+saveaspdfandxps)
  11. 微信公众号python开发_基于Python的微信公众平台二次开发(Python常用框架、订阅号开发、公众号开发)...
  12. MongoDB课堂笔记
  13. Hadoop实战第2版 - 电子书下载(高清版PDF格式+EPUB格式)
  14. Python IDLE的下载,安装和使用
  15. 清华学霸教你1小时入门 Python 爬虫,别说学长没帮你
  16. Robcup2D足球学习记录【2020.01.10】
  17. ICC学习——LAB0A
  18. 又一购物节IP诞生,38女王节如何圈人
  19. Micro LED - OLED注定过渡
  20. 怎么在电脑上玩电击文库零境交错 电击文库零境交错电脑版教程

热门文章

  1. SQL语句中使用回车换行符
  2. 跟 ofo,说最后一声再见
  3. 仿支付宝收取积分的收集动画
  4. 高性能服务器结构smp,曙光CAE高性能计算解决方案(2)
  5. 计算机导论基于计算思维答案,基于计算思维的计算机导论课程改革实践.PDF
  6. ntpd自动启动java_ntpd 使用NTPD设置时间服务器
  7. 基于H5和C3的静态电商网站
  8. python异步协程库_Python连载42-异步协程函数
  9. matlab 蒙特卡洛树搜索算法_蒙特卡罗方法入门、蒙特卡洛树简介(转载)
  10. 树枝学术 | 图书论文学术资源全攻略