当前位置: 首页 > news >正文

Spark与Flink 架构选择

Flink和Spark对比

通过学习,我们了解到,Spark和Flink都支持批处理和流处理,接下来让我们对这两种流行的数据处理框架在各方面进行对比。首先,这两个数据处理框架有很多相同点。

•都基于内存计算;

•都有统一的批处理和流处理APl,都支持类似SQL的编程接口;

•都支持很多相同的转换操作,编程都是用类似于Scala Collection APl的函数式编程模式;

•都有完善的错误恢复机制;

•都支持Exactly once的语义一致性。

当然,它们的不同点也是相当明显,我们可以从4个不同的角度来看。

从流处理的角度来讲,Spark基于微批量处理,把流数据看成是一个个小的批处理数据块分别处理,所以延迟性只能做到秒级。而Flink基于每个事件处理,每当有新的数据输入都会立刻处理,是真正的流式计算,支持毫秒级计算。由于相同的原因,Spark只支持基于时间的窗口操作(处理时间或者事件时间),而Flink支持的窗口操作则非常灵活,不仅支持时间窗口,还支持基于数据本身的窗口,开发者可以自由定义想要的窗口操作。

从SQL 功能的角度来讲,Spark和Flink分别提供SparkSQL和Table APl提供SQL交互支持。

两者相比较,Spark对SQL支持更好,相应的优化、扩展和性能更好,而Flink在SQL支持方面还有很大提升空间。

从迭代计算的角度来讲,Spark对机器学习的支持很好,因为可以在内存中缓存中间计算结果来加速机器学习算法的运行。但是大部分机器学习算法其实是一个有环的数据流,在Spark中,却是用无环图来表示。而Fli

相关文章:

  • Java代码实现PDF添加水印
  • Spark统计每天新增用户
  • Spark on Hive和Hive on Spark的区别
  • java位运算例子
  • C#中的Tostring方法与例子
  • C#简单json实例
  • oracle时间日期函数
  • 多表连接(inner join on用法)
  • Oracle分页查询语句(一)
  • ORACLE分页查询语句_rownum(二)
  • Oracle的优化器
  • oracle的case函数控制结构DECODE()函数
  • JQuery入门简介
  • Js字符串操作函数大全
  • js 运算符 || 妙用
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • ECMAScript6(0):ES6简明参考手册
  • gf框架之分页模块(五) - 自定义分页
  • github从入门到放弃(1)
  • Linux后台研发超实用命令总结
  • MaxCompute访问TableStore(OTS) 数据
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • React-生命周期杂记
  • STAR法则
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • Xmanager 远程桌面 CentOS 7
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 深度学习中的信息论知识详解
  • 一些关于Rust在2019年的思考
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • Android开发者必备:推荐一款助力开发的开源APP
  • Java数据解析之JSON
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • # C++之functional库用法整理
  • #1014 : Trie树
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (分布式缓存)Redis分片集群
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (六)激光线扫描-三维重建
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)Scala的“=”符号简介
  • .net 7 上传文件踩坑
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .net 托管代码与非托管代码