Spark Streaming 对比 Structured Streaming(及其内部的两种模式 MicroBatch Streaming VS Continous Streaming)
一 前言
最近在看 Structured Streaming,先出个简单对比图,Spark Streaming VS Structured Streaming 以及 Structured Streaming内部的两种模式 MicroBatch Streaming VS Continous Streaming。后期深入再做总结和补充。
参考:
《图解Spark核心技术与案例实战》
二 Spark Streaming VS Structured Streaming
对比项 |
Spark Streaming |
Structured Streaming |
基于RDD抽象数据 |
DStream(RDD不同时间点的集合,是RDD抽象数据集合)。DStream上有转换和输出操作 |
基于DataSet/DataFrame,由于二维表有数据类型,可以做优化,如encoder。它提供了toRDD接口,最终也是基于RDD的Job |
是否数据结构化 |
可以非结构化??? |
结构化数据 |
Job执行流程 |
先执行DStreamGraphe+JobScheduler再执行DAGSchedule。 作业先注册到DStreamGraph,到达批处理时间时,才根据DStreamGraph生成作业并处理该批处理时间内接受的数据 |
先执行SQL Engine再执行DAGSchedule。 SQL Engine(解析SQL语句,生成logical plan,优化logical plan,生成physical plan,优化physical plan) |
是否批处理 |
是,设置BatchDuration,每个duration的数据流为一批处理源 |
MicroBatchExecution:是批处理 ContinousExecution:可以单条数据增量式处理(这个目前由触发器的时间决定) |
最小延期 |
0.5~2s |
MicroBatchExecution:100ms ContinousExecution:1ms |
处理引擎 |
Spark Streaming引擎(DStreamGraphe+JobScheduler)+SparkCore引擎(DAGScheduler) |
Spark SQL引擎(SQL Engine) + SparkCore引擎(DAGScheduler) |
三、 MicroBatch Streaming VS Continous Streaming (In Spark2.4 Structured Streaming)
Structured Streaming处理模式 |
MicroBatch模式 |
Continous 模式 |
统一的用户编程模式 |
Input => Query => Result => Output(complete/update/append) -----------------------trigger---------------------------> |
|
统一的设计模式(from code view) |
source => transformation/action(catalyst->spark.execute) => sink => output => [checkpoint] |
|
样例代码及对应的代码模块 |
||
Trigger类 |
Trigger.ProcessingTime |
Trigger.Continuous |
对应execution |
MicroBatchExecution |
ContinuousExecution |
Trigger工作模式 |
以一定间隔(interval)调度计算逻辑,间隔为0时,上批次调用完成后,立即进入下一批次调用一直调用,退化为类似sparkstreaming的micro batch的流处理 |
以一定间隔(interval)查看流计算状态 |
DAG调度次数 |
等于Trigger 的 interval间隔触发次数 |
一次,由ContinuousWriteRDD.compute里 while (!context.isInterrupted() && !context.isCompleted()) 完成 |
目前Spark2.3-2.4支持API |
支持API丰富,如汇聚,关联等操作 |
仅简单的projection类(map,select等) |
TriggerExecutor类型 |
ProcessingTimeExecutor |
ProcessingTimeExecutor/ OneTimeExecutor |
Databrick测试的延迟级别 |
100ms |
1ms |
Refer to: https://databricks.com/blog/2018/03/20/low-latency-continuous-processing-mode-in-structured-streaming-in-apache-spark-2-3-0.html |
||
Spark Streaming 对比 Structured Streaming(及其内部的两种模式 MicroBatch Streaming VS Continous Streaming)相关推荐
- m基于PSO粒子群优化的第四方物流的作业整合算法matlab仿真,对比有代理人和无代理人两种模式下最低运输费用、代理人转换费用、运输方式转化费用和时间惩罚费用
目录 1.算法概述 2.仿真效果预览 3.核心MATLAB程序 4.完整MATLAB程序 1.算法概述 粒子群优化 (PSO)算法是通过模拟鸟群觅食过程中的迁徙和群聚行为而提出的一种基于群体智能的全局 ...
- 2021年大数据Spark(九):Spark On Yarn两种模式总结
目录 Spark On Yarn两种模式 引入 一.当一个MR应用提交运行到Hadoop YARN上时 二.当一个Spark应用提交运行在集群上时 注意 client 模式 cluster 模式 总结 ...
- Spark on YARN 两种模式yarn-cluster yarn-client 面试题
Spark On YARN:目前很有前景的部署模式, 支持两种模式 1)yarn-cluster:适用于生产环境 2)yarn-client:适用于交互.调试.希望立即看到 app 的输出 Spark ...
- Spark Standalone -- 独立集群模式、Spark 提交任务的两种模式、spark在yarn上运行的环境搭建、自己写的spark代码如何提交到yarn上并运行...
目录 Spark Standalone -- 独立集群模式 Standalone 架构图 Standalone 的搭建 1.上传.解压.重命名 2.配置环境变量 3.修改配置文件 conf 4.同步到 ...
- Spark 基础 —— RDD(创建 RDD)的两种方式
弹性分布式数据集(Resilient Distributed Dataset),简称 RDD,RDD 是 Spark 所提供的最基本的数据抽象,代表分布在集群中多台机器上的对象集合.Spark 有两种 ...
- spark中将数据输出到json文件的两种方式
在学习spark时,我们经常遇到要将数据写进一个json文件中的案例.通常的案例就是,给我们一个普通文件,然后我们用sparkcore或者sparkSQL,遍历文件内容后,按照需求将再将遍历后得到的数 ...
- 实时云渲染VS本地渲染,两种模式全面对比
当前,渲染主要分为实时云渲染和本地渲染,但越来越多的用户开始选用实时云渲染,摒弃了原来使用本地电脑进行渲染显示. 本文将从便捷性.成本.协同能力.画质.物理稳定性五个方面来分析对比实时云渲染与本地 ...
- 【大数据开发】SparkCore——Spark作业执行流程、RDD编程的两种方式、简单算子
文章目录 一.Spark作业执行流程(重点) 二.RDD编程 2.1创建RDD的⼆种⽅式: 2.2Transformation算⼦ 2.3Action算子 三.简单算子(必须掌握) 3.1 map.m ...
- 简单对比4G的两种模式
LTE:long term evolution 长期演进. LTE根据双工方式不同分为TD-LTE和FDD-LTE. 移动用的TD-TED:联通和电信用的混合组网. TD-LTE(时分复用) FDD ...
最新文章
- 前阿里 P9 级员工称离婚是模拟测试,已回滚复婚!
- 如何扩展分布式日志组件(Exceptionless)的日志通知?
- #获得请求来源ip_以太网数据包TCP、IP、ICMP、UDP、ARP协议头结构详解
- Php接收Vba post例子,vba发送窗口消息_postmessage
- 数据库面试 - 分库分表之后,id 主键如何处理?
- 一步步实现SDDC--学习平台环境的搭建
- linux nona怎么用_Linux nano编辑器命令常用方法
- v8的垃圾回收机制(一)
- winform 可拖动的自定义Label控件
- android 实现页面跳转代码,Android 实现页面跳转
- STRING网站分析蛋白质相互作用
- 微信支付全部详细流程
- 第三代测序技术的兴起
- 又一个程序员,被抓捕!(真实事件)
- Oracle管理的文件(OMF)的具体含义
- 混沌初开:全新 HarmonyOS 2 正式到来!
- 【信奥题库 NOIP 2020 在线模拟赛 T4】三元组
- list 根据某个字段分组
- 【深入UCSC Genome Brower】他山之石
- stm32h743能跑linux吗,关于stm32H743 can配置
热门文章
- python实战:爬取优美图库,将图片格式的本地存储
- 2018年北京AQI全年走势图
- java lang arithmetic_java.lang.ArithmeticException: Division undefined
- stm32cube 和 RTX v5一起用的方法
- AutoCAD.NET实现CAD截图
- c 执行oracle 函数,Oracle 下医嘱执行函数
- 高防服务器网站搭建专用死扛CC攻击有效处理高并发
- 微信、QQ、支付宝运动步数自定义小工具
- CVPR 2022|解耦知识蒸馏!旷视提出DKD:让Hinton在7年前提出的方法重回SOTA行列!...
- [Android]从canDrawOverlays权限获取错误说起