一个NotionNext搭建的博客
数据库系统概论
大数据原理与应用
javaWeb应用开发基础教程
python
毕业设计
大数据技术综合应用
实训-航空数据系统
java面向对象程序设计
数据结构
算法分析与设计
SPARK
Python爬虫大数据采集与挖掘
云计算
概率论与数理统计
数字逻辑
计算机网络
计算机组成原理
linux
操作系统
人工智能导论
数据仓库与数据挖掘
数据可视化
大数据安全与隐私保护
c语言
C++
【第六章】流计算
流计算处理流程
概述
包括三个阶段:数据实时采集、数据实时计算、实时查询服务
数据实时采集
- 实时性,低延迟与稳定可靠
数据实时计算
实时查询服务
Spark Streaming设计
整合多种输入数据源,实时输入数据流,以时间片进行拆分
- storm可以实现毫秒级相应
- spark Streaming秒级批处理
DStream
Spark Streaming工作机制
在Spark Streaming中,会有一个组件Receiver,作为一个长期运行的任务(Task)运行在一个Executor上,每个Receiver都会负责一个DStream输入流(如从文件中读取数据的文件流、套接字流或者从Kafka中读取的一个输入流等)。Receiver组件接收到数据源发来的数据后,会提交给Spark Streaming程序进行处理。处理后的结果,可以交给可视化组件进行可视化展示,也可以写入到HDFS、HBase中。

程序基本步骤
- 创建输入DStream来定义输入源
- DStream应用转换操作和输出操作定义流计算
- streamingContext.start()接收数据
创建SC对象
通过SparkCont()创建SparkContext对象
- pyspark下默认存在一个sc对象,不用另创立
基本输入源
文件流
textFileStream(’目录’)
套接字流
socket
RDD队列流
streamingContext.queueStream(queueRDD)
range(1,1001)指的是[1,1000]
高级输入源
Kafka简介
高吞吐量,在线实时处理,离线批处理,实现不同类型数据的高效实时交换
- Broker:Kafka中的服务器
- Topic:消息的类别
- Patition:物理分区
- Producer:消息生产者
- Consumer:消息消费者
- Consumer Group:消费者分组
DStream转换操作
- checkpoint(目录)检查点
无状态的转换操作
只分析当前状态,和之前状态无关
- map(func)
- flatMap(func)
- filter(func)
- repartition(numPatitions)
- reduce(func)
- union()连接
- countByValue()元素类型为K的DStream上,返回(K,V)
- reduceByKey(,[num Tasks])
- join(,[num Tasks])
- cogroup(otherStream,[num Tasks])
有状态的转换操作
和之前状态有关
滑动窗口转换操作
- 设定一个滑动窗口的长度(窗口持续时间)
- 设定窗口的时间间隔(多长时间执行一次)
- window(windowLength,slidelnterval)
- countByWindow(windowLength,slidlnterval)返回窗口数
- reduceByWindow(func,windowLength,slidelnterval)
- countByValueAndWindow(windowLength,slidelnterval,[num Tasks])每个key出现的频率
- reduceBykeyAndWindow(func,windowLength,slidelnterval,[numTasks])每个key进行func聚合
- reduceBykeyAndWindow(func,invFunc,windowLength,slidelnterval,[numTasks])
Prev
【第五章】DataFrame
Next
【第七章】Structured Streaming
Loading...