spark streaming学习
1 spark streaming
1.1 Spark Streaming 介绍
批量计算
流计算
1.2 Spark Streaming 入门
Netcat 的使用
项目实例
目标:使用 Spark Streaming 程序和 Socket server 进行交互, 从 Server 处获取实时传输过来的字符串, 拆开单词并统计单词数量, 最后打印出来每一个小批次的单词数量
步骤:
开始进行交互:
注意:
Spark Streaming 并不是真正的来一条数据处理一条
Spark Streaming 的处理机制叫做小批量, 英文叫做 mini-batch, 是收集了一定时间的数据后生成 RDD, 后针对 RDD 进行各种转换操作, 这个原理提现在如下两个地方
- 控制台中打印的结果是一个批次一个批次的, 统计单词数量也是按照一个批次一个批次的统计
- 多长时间生成一个
RDD去统计呢? 由new StreamingContext(sparkConf, Seconds(1))这段代码中的第二个参数指定批次生成的时间
Spark Streaming 中至少要有两个线程
在使用 spark-submit 启动程序的时候, 不能指定一个线程
- 主线程被阻塞了, 等待程序运行
- 需要开启后台线程获取数据
1.3 各种算子
-
这些算子类似
RDD, 也会生成新的DStream -
这些算子操作最终会落到每一个
DStream生成的RDD中
| 算子 | 释义 |
|---|---|
|
|
将一个数据一对多的转换为另外的形式, 规则通过传入函数指定 |
|
|
一对一的转换数据 |
|
|
这个算子需要特别注意, 这个聚合并不是针对于整个流, 而是针对于某个批次的数据 |
2 Structured Streaming
2.1 Spark 编程模型的进化过程
| 编程模型 | 解释 |
|---|---|
|
|
|
|
|
|
|
|
|
2.2 Spark Streaming 和 Structured Streaming
Spark Streaming 时代
Structured Streaming 时代














浙公网安备 33010602011771号