Spark定制班第29课:深入理解Spark 2.x中的Structured Streaming内幕

本期内容:
1. 新型的Spark Streaming思维
2. Structured Streaming内幕

Spark 2.0 仍有bug,不适合于生成环境。只用于测试。
Spark 2.X提出了continuous application(连续的应用程序)的概念,非常重大。
Spark定制班第29课:深入理解Spark 2.x中的Structured Streaming内幕_第1张图片
如图例所示,数据通过Kafka流进来,经过ETL,
SS把数据看成一张表。一张没有边际的表、
Spark定制班第29课:深入理解Spark 2.x中的Structured Streaming内幕_第2张图片
Eventtime,事件触发器,以后再展开来分析。通过JDBC访问数据。
多个query并行运行。
官方说2.0的正式版本并没有在线机器学习功能了。
Spark定制班第29课:深入理解Spark 2.x中的Structured Streaming内幕_第3张图片
快速的、容错的、exactly-once,有状态的流处理。不用清楚底层的流是怎么回事。
Spark定制班第29课:深入理解Spark 2.x中的Structured Streaming内幕_第4张图片

Spark定制班第29课:深入理解Spark 2.x中的Structured Streaming内幕_第5张图片
delta input: 增量更新。有更新的部分时,才更新。

从物理级别看的内容:
Spark定制班第29课:深入理解Spark 2.x中的Structured Streaming内幕_第6张图片

StructureStreaming基于DataSet、DataFrame,没有涉及DStream了。没有数据收集过来再处理这样的概念,数据就一直在了。
Spark定制班第29课:深入理解Spark 2.x中的Structured Streaming内幕_第7张图片
上例中将两个dataset进行join操作,更符合RDD的API,不需要foreachRDD后门了。
API级别的很大优势。
Spark定制班第29课:深入理解Spark 2.x中的Structured Streaming内幕_第8张图片

默认情况下,DataSet、DataFrame是static bounded data,流处理是streaming unbounded data。API把两者融合了。

Spark定制班第29课:深入理解Spark 2.x中的Structured Streaming内幕_第9张图片
可以认为Planner是一个翻译器或路由器,基于DataFrame和DataSet代码来决定是否走Spark SQL的UnResult、Result Logic Plan、Optimized Logic Plan等,编码者不需要关心这些东西了。
Spark会走向完全实时的时代。所有的机器学习、图计算都应该在流数据上进行计算。

你可能感兴趣的:(Scala,大数据技术,Spark)