Spark学习笔记(28)深入理解Spark 2.x中的Structured Streaming
2017-09-01 00:31
387 查看
本期内容:
1. 新型的Spark Streaming思维
2. Structured Streaming内幕
Spark 2.0 仍有bug,不适合于生成环境。只用于测试。
Spark 2.X提出了continuous application(连续的应用程序)的概念,非常重大。
如图例所示,数据通过Kafka流进来,经过ETL,
SS把数据看成一张表。一张没有边际的表、
Eventtime,事件触发器,以后再展开来分析。通过JDBC访问数据。
多个query并行运行。
官方说2.0的正式版本并没有在线机器学习功能了。
快速的、容错的、exactly-once,有状态的流处理。不用清楚底层的流是怎么回事。
delta input: 增量更新。有更新的部分时,才更新。
从物理级别看的内容:
StructureStreaming基于DataSet、DataFrame,没有涉及DStream了。没有数据收集过来再处理这样的概念,数据就一直在了。
上例中将两个dataset进行join操作,更符合RDD的API,不需要foreachRDD后门了。
API级别的很大优势。
默认情况下,DataSet、DataFrame是static bounded data,流处理是streaming unbounded data。API把两者融合了。
可以认为Planner是一个翻译器或路由器,基于DataFrame和DataSet代码来决定是否走Spark SQL的UnResult、Result Logic Plan、Optimized Logic Plan等,编码者不需要关心这些东西了。
Spark会走向完全实时的时代。所有的机器学习、图计算都应该在流数据上进行计算。
1. 新型的Spark Streaming思维
2. Structured Streaming内幕
Spark 2.0 仍有bug,不适合于生成环境。只用于测试。
Spark 2.X提出了continuous application(连续的应用程序)的概念,非常重大。
如图例所示,数据通过Kafka流进来,经过ETL,
SS把数据看成一张表。一张没有边际的表、
Eventtime,事件触发器,以后再展开来分析。通过JDBC访问数据。
多个query并行运行。
官方说2.0的正式版本并没有在线机器学习功能了。
快速的、容错的、exactly-once,有状态的流处理。不用清楚底层的流是怎么回事。
delta input: 增量更新。有更新的部分时,才更新。
从物理级别看的内容:
StructureStreaming基于DataSet、DataFrame,没有涉及DStream了。没有数据收集过来再处理这样的概念,数据就一直在了。
上例中将两个dataset进行join操作,更符合RDD的API,不需要foreachRDD后门了。
API级别的很大优势。
默认情况下,DataSet、DataFrame是static bounded data,流处理是streaming unbounded data。API把两者融合了。
可以认为Planner是一个翻译器或路由器,基于DataFrame和DataSet代码来决定是否走Spark SQL的UnResult、Result Logic Plan、Optimized Logic Plan等,编码者不需要关心这些东西了。
Spark会走向完全实时的时代。所有的机器学习、图计算都应该在流数据上进行计算。
相关文章推荐
- 【c和指针学习笔记】深入理解字符串常量
- 深入理解JVM虚拟机学习笔记(—)内存区域与内存溢出异常
- 28、深入理解计算机系统笔记,Web服务器简介
- 深入理解C指针学习笔记之常量和指针(六)
- Java学习笔记之一(深入理解Object类中方法)
- Java学习笔记之深入理解关键字static
- 学习笔记——深入理解计算机系统——启动
- 深入理解java虚拟机-学习笔记01
- 深入理解计算机系统学习笔记(三)之C语言常见的与存储器(内存)有关的错误
- 【Java】深入理解JVM学习笔记(一) —— JVM数据区域
- EM算法学习笔记2:深入理解
- Rest API 学习笔记 --- 深入理解 Restful API 架构
- (转 Uncle Tom )深入理解javascript(1)学习笔记
- 【Java学习笔记之二十六】深入理解Java匿名内部类
- 第65课:SparkSQL下Parquet深入进阶学习笔记
- 深入理解Java虚拟机—学习笔记(1)Java内存区域与内存溢出异常
- 深入理解C指针学习笔记(四)
- (C/C++学习笔记)临时对象深入理解
- Java多线程高并发学习笔记(二)——深入理解ReentrantLock与Condition
- Java并发编程学习笔记 深入理解volatile关键字的作用