从CSDN中读取到关于spark structured streaming源代码分析不错的几篇文章
spark源码分析--事件总线LiveListenerBus
-
spark事件总线的核心是LiveListenerBus,其内部维护了多个AsyncEventQueue队列用于存储和分发SparkListenerEvent事件。 spark事件总线整体思想是生产消费者模式,消息事件实现了先进先出和异步投递,同时将事件的产生(例如spark core创建stage、提交job)和事件的处理(例如在Spark UI显示任务信息)分离,在一定程度上提升了系统的异步...
-
2018-09-28 11:09:23
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
Spark Structrued Streaming源码分析--(三)Aggreation聚合状态存储与更新
-
通过维持聚合数据的状态,并比较水位线watermark删除不再更新的聚合数据,spark实现了流计算中unbounded table(持续更新状态的*table),一个典型的实例: val windowedCounts = words.groupBy( window($"timestamp&a
-
2018-09-01 14:45:48
Spark Structured Streaming源码分析--(二)StreamExecution持续查询引擎
-
接前一篇文章,我们分析了StreamQueryManager创建流的过程,分为createQuery()和start()两个步骤,StreamExecution的执行起点为query.streamingQuery.start(),代码如下: def start(): Unit = { logInfo(s&
-
2018-09-01 14:45:39
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:29Github上不错的文章:《Structured Streaming 源码解析系列》Spark不错的文章:《Spark driver执行过程及其消息循环》Spark SQL解析不错文章:《Spark-SQL解析》