structure_介绍_对比 | 学习笔记

简介: 快速学习 structure_介绍_对比

开发者学堂课程【大数据Spark2020版(知识精讲与实战演练)第五阶段:structure_介绍_对比】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/692/detail/12142


structure_介绍_对比

内容介绍

一. 目标和过程

二. Spark Streaming 时代

三. Structured Streaming 时代

四. Spark Streaming 和 Structured Streaming 的对比

五. 总结

 

一. 目标和过程

1.目标

理解 Spark Streaming 和 Structured Streaming 之间的区别,是非常必要的,从这点上可以理解 Structured Streaming 的过去和产生契机

2.过程

(1)Spark Streaming 时代

(2)Structured Streaming 时代

(3)Spark Streaming 和 Structured Streaming

 

二. Spark Streaming 时代

Spark Streaming 其实就是 RDD 的 API 的流式工具其本质还是 RDD,存储和执行过程依然类似 RDD。

image.png

整个的 Spark 个体系看起来就像这张图。首先最底层是 Spark RDD ,即 Spark core ,基于 Spark core 之上有 Spark SQL ,即

Dataset 。然后基于 Spark core 之上还有 Spark Streaming ,和 Spark Streaming 及 Spark SQL 同级的,还有 MLIib 做机器学习以及 Graph X 做图计算。

 

三.Structured Streaming 时代

Structured Streaming 是 Dataset 的 API 的流式工具,  API 和 Dataset 保持高度一致。

但是自从出现了 Structured Streaming 以后,整个的时代会有一点点不同了。

 

在 Spark 2.0 以后, Structured Streaming 已经标记为生产可用的了。理论上现阶段做一个新项目,在不考虑历史原因的情况下,不应该再使用 Spark Streaming 了,应该使用 Structured Streaming 。

在这个时代里, Spark SQL 作为整个的底层,整个 RDD 都不再使用了。

在 Spark SQL 之上,可以使用 Dataset ,Data Frame , Structured Streaming ,MLIib 和 Graph Frame 。在上一个时代最底层是 RDD ,在 RDD 之上有 Spark SQL ,Spark Streaming, MLIib 和 Graph X,但是现在已经把 RDD 给淘汰了。 RDD 作为整个的最下层,作为 Spark SQL 的最下层,所有的 API 都是在 Spark SQL 之上提供出来的,比如 Dataset , Structured Streaming , MLIib 和 Graph Frame 。

Spark Streaming 在以上两张图里可以观察到它的底层是 RDD ,而 Structured Streaming 的底层是 Dataset ,这方面是有一点区别的。

首先 Spark Streaming 无论多高级,无论跟原来多像,但是它里面有一些特殊的操作,比如说 Update State ByKey  , Windows 操作, foreach RDD ,这些操作都是 RDD 当中没有的。

但是 Structured Streaming  里面 Dataset 和原生的 Spark SQL 代码完全相同,只不过一个是针对流,一个是针对批,只有这一点点区别。所以 Structured Streaming 真正做到了在 API 层面上统一所有的操作。 Spark Streaming 虽然有这样的一个目标,但是它没有做到, Structured Streaming 做到了。

Structured Streaming 也支持了连续流模型, Spark Streaming 只支持小批量的流模型。

但是 Structured Streaming 有一个试验的性质和特点名为连续滤模性。即正常情况下,可以直接一条条数据处理,做到毫秒级的延迟,类似于 Flink 。

在 2.0 以后, Structured Streaming 被标注为稳定,意味着新的 Spark 项目当中不该再使用 Spark Streaming 而使用 Structured Streaming 。

image.png

 

四.Spark Streaming 和 Structured Streaming 的对比

1. Structured Streaming 相比于 Spark Streaming 的进步就类似于 Dataset 相比于 RDD 的进步。

2.另外还有一点, Structured Streaming 已经支持了连续流模型,也就是类似于 Flink 那样的实时流,而不是小批量,但在使用的时候仍然有限制,大部分情况还是应该采用小批量模式。

在 2.2.0 以后 Structured Streaming 被标注为稳定版本,意味着以后的 Spark 流式开发不应该在采用 Spark Streaming 了。

 

五.总结

Structured Streaming 作用:简单来说就是替代掉 Spark Streaming

进步性:

首先它在 API 层面上和 Dataset 是同一套 API ,没有区别。第二点, Structured Streaming 支持了连续流模型。

相关文章
|
5月前
|
SQL 消息中间件 Kafka
Flink SQL 详解:流批一体处理的强大工具
Flink SQL 是 Apache Flink 提供的 SQL 引擎,支持流批一体处理,统一操作流数据与批数据,具备高性能、低延迟、丰富数据源支持及标准 SQL 兼容性,适用于实时与离线数据分析。
919 1
|
存储 编解码 算法
ISO/IEC 23001:数字版权管理的加密标准(一)
ISO/IEC 23001:数字版权管理的加密标准(一)
312 0
|
存储 分布式计算 测试技术
探索Apache Hudi核心概念 (4) - Clustering
探索Apache Hudi核心概念 (4) - Clustering
550 3
|
存储 分布式计算 Hadoop
HDFS 修改副本数&fsck命令
HDFS 修改副本数&fsck命令
1148 0
|
消息中间件 存储 关系型数据库
使用Apache Hudi构建下一代Lakehouse
使用Apache Hudi构建下一代Lakehouse
182 0
|
存储 消息中间件 分布式计算
|
11月前
|
存储 算法 区块链
区块链:版权保护的新利器
区块链:版权保护的新利器
849 21
|
分布式计算 资源调度 监控
什么是 Spark DAG?
【8月更文挑战第14天】
1273 5
|
存储 运维 安全
函数计算产品使用问题之如何获取到访问其他阿里云服务所需的AccessKey、SecretKey或STS Token
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
运维 容灾 关系型数据库
阿里云关系型数据库RDS
阿里云关系型数据库RDS概述
517 2