master
zy 6 years ago
parent 17862639f8
commit 65fe2c0954

@ -5,7 +5,9 @@ Spark Streaming 是一套优秀的实时计算框架。其良好的可扩展性
Spark Streaming 有高扩展性、高吞吐量和容错能力强的特点。Spark Streaming 支持的数据输入源很多例如Kafka、Flume、Twitter、ZeroMQ 和简单的 TCP 套接字等等。数据输入后可以用 Spark 的高度抽象原语如map、reduce、join、window 等进行运算。而结果也能保存在很多地方,如 HDFS数据库等。另外 Spark Streaming 也能和 MLlib(机器学习)以及 Graphx 完美融合。其架构见下图:
![](https://www.educoder.net/api/attachments/462367)
<p align="center" >
<img style="border: 2px solid #ddd;padding: 5px; background: #fff;" src="https://www.educoder.net/api/attachments/462367" alt="" height="100%" width="100%" />
</p>
Spark Streaming 其优秀的特点给我们带来很多的应用场景。本文中将通过从kafka获取用户行为来为大家进行介绍。场景流程如下
- 读取 Kafka 实时数据;
@ -20,14 +22,19 @@ Spark Streaming 其优秀的特点给我们带来很多的应用场景。本文
结构化流Structed streaming中的关键思想是将实时数据流视为连续追加的表
![](https://www.educoder.net/api/attachments/375945)
<p align="center" >
<img style="border: 2px solid #ddd;padding: 5px; background: #fff;" src="https://www.educoder.net/api/attachments/375945" alt="" height="100%" width="100%" />
</p>
程序模型:
每个触发(Triggers)间隔(例如,每`1`秒将新行附加到输入表经查询产生结果表并最终写入外部Sink。
![](https://www.educoder.net/api/attachments/375947)
<p align="center" >
<img style="border: 2px solid #ddd;padding: 5px; background: #fff;" src="https://www.educoder.net/api/attachments/375947" alt="" height="100%" width="100%" />
</p>
### 3.1.4 创建流式Dataframe的说明
`Spark2.0`以后,`DataFrames`和`Datasets`不仅可以用于`sparksql`中表示静态有界的数据,而且可以在`Structer streaming`中表示流式无界数据。我们可以通过`SparkSession.readStream()`创建流式`DataFrames`

@ -34,7 +34,9 @@ Offset Kafka 的存储文件都是按照 Offset . index 来命名用Offset
### 3.1.3 Kafka 架构组件
Kafka 中发布订阅的对象是 Topic。我们可以为每类数据创建一个 Topic ,把向 Topic 发布消息的客户端称作 Producer ,从 Topic 订阅消息的客户端称作 Consumer 。Producers 和 Consumers 可以同时从多个 Topic 读写数据。一个 Kafka 集群由一个或多个 Broker 服务器组成,它负责持久化和备份具体的 Kafka 消息。
![](https://www.educoder.net/api/attachments/293503)
<p align="center" >
<img style="border: 2px solid #ddd;padding: 5px; background: #fff;" src="https://www.educoder.net/api/attachments/293503" alt="" height="100%" width="100%" />
</p>
### 3.1.4 kafka 常用命令

@ -4,4 +4,6 @@
结构化流Structed streaming中的关键思想是将实时数据流视为连续追加的表,每个触发(Triggers)间隔(例如,每`1`秒将新行附加到输入表经查询产生结果表并最终写入外部Sink。
![](https://www.educoder.net/api/attachments/375945)
<p align="center" >
<img style="border: 2px solid #ddd;padding: 5px; background: #fff;" src="https://www.educoder.net/api/attachments/375945" alt="" height="100%" width="100%" />
</p>

Loading…
Cancel
Save