1、概叙
1.Spark Streaming是什么
Spark Streaming用于流式数据处理,是准实时的数据处理可以允许秒级别的延迟。
2.特点
易用 容错 易整合到spark体系
3.架构
2、DStream入门
1、WordCount实操案例
1.需求:
使用 netcat 工具向 9999 端口不断的发送数据,通过 SparkStreaming 读取端口数据并统
计不同单词出现的次数
2.添加依赖
<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming_2.12</artifactId> <version>3.1.2</version> </dependency>
3.编写代码
package com.zch.spark.streaming
import org.apache.spark.SparkConf
import org.apache.spark.streaming.dstream.ReceiverInputDStream
import org.apache.spark.streaming.{Seconds, StreamingContext}
/**
* Author: zhaoHui
* Date: 2022/01/03
* Time: 16:43
* Description: Spark Streaming 入门实操案例
*/
object sparkStreaming01_WordCount {
def main(args: Array[String]): Unit = {
// TODO 创建环境对象
// StreamingContext创建时,需要设置两个参数
// 第一个参数表示环境配置
val sparkConf = new SparkConf()
.setMaster("local[*]")
.setAppName("SparkStreaming")
// 第二个参数表示批处理的周期(采集周期)
val ssc = new StreamingContext(sparkConf,Seconds(3));
// TODO 逻辑处理
// 获取端口数据
val lines: ReceiverInputDStream[String] = ssc.socketTextStream("localhost", 9999)
lines.flatMap(_.split(" "))
.map((_,1))
.reduceByKey(_+_)
.print()
// TODO 关闭环境
// 由于SparkStreaming采集器是长期执行任务的,所以不能直接关闭
// main执行完毕,应用程序会自动结束,所以不能让main执行结束
//ssc.stop()
// 1、启动采集器
ssc.start()
// 2、等待采集器关闭
ssc.awaitTermination()
}
}
4.启动netcat发送数据










