spark structured streaming源码
文章平均质量分 96
LS_ice
这个作者很懒,什么都没留下…
展开
-
Spark Structured Streaming源码分析--(二)StreamExecution持续查询引擎
接前一篇文章,我们分析了StreamQueryManager创建流的过程,分为createQuery()和start()两个步骤,StreamExecution的执行起点为query.streamingQuery.start(),代码如下: def start(): Unit = { logInfo(s&原创 2018-09-01 14:45:39 · 3279 阅读 · 2 评论 -
Spark Structrued Streaming源码分析--(一)创建Source、Sink及自定义输入、输出端
一、示例example二、通过DataStreamReader.load()方法,查找Source并创建DataFrame一、示例example 从Kafka Topic读取记录行,统计单词个数 val dataStreamReader: DataStreamReader = spark .readStream .format(&a原创 2018-09-01 14:45:29 · 3000 阅读 · 0 评论 -
Spark Structrued Streaming源码分析--(三)Aggreation聚合状态存储与更新
通过维持聚合数据的状态,并比较水位线watermark删除不再更新的聚合数据,spark实现了流计算中unbounded table(持续更新状态的无界table),一个典型的实例:val windowedCounts = words.groupBy( window($"timestamp&a原创 2018-09-01 14:45:48 · 3315 阅读 · 4 评论 -
Spark Structrued Streaming源码分析--(四)ProgressReporter每个流处理进度计算、StreamQueryManager管理运行的流
ProgressReporter是每个StreamExecution持有的特性:abstract class StreamExecution( xxx ) extends StreamingQuery with ProgressReporter with Logging {}在当前批次计算完成并写出到sink后,会调用ProgressReporter的finishTrigg...原创 2018-09-01 14:45:56 · 1525 阅读 · 0 评论 -
Spark Structured Streaming源码分析--(五)Continuous连续处理模式流式Shuffle
文章目录一、概述二、 原生ContinuousCoaleseExec介绍1、创建ContinuousCoaleseEexc2、ContinuousCoaleseEexc执行的操作一、概述本文主要介绍Spark SQL中,Repartition算子绑定,重点介绍Spark 2.4.0 流处理Continous模式新增的流式Repartition和Shuffle操作,为后续源码提供一些理论基础。...原创 2019-03-01 17:12:26 · 1084 阅读 · 0 评论 -
Spark Structured Streaming源码扩展--(六)流式Shuffle支持多分区及侧边输出
文章目录一、概述一、概述上一篇文章,我们介绍了Spark Continous连续处理模式,已有流式shuffle的实现,分析了绑定的物理计划和内部writer、reader实现。在本文,我们将介绍如何扩展Spark Continous流式shuffle源码,以支持多个下游分区、侧边输出、自动分析侧边输出的依赖、删除ReceiverEpochMarker机制提高并发性能等原理。Spar...原创 2019-03-14 17:01:31 · 904 阅读 · 0 评论