大数据之Spark Streaming

本文深入探讨Spark Streaming,介绍其如何通过批处理实现实时数据流处理,强调DStream作为基本抽象的概念,详细阐述DStream的转换操作,特别是transform和updateStateByKey,以及窗口计算的重要性和工作原理,包括窗口长度和滑动间隔的设置,并展示了如何在数据流上集成Spark SQL进行更复杂的分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spark Streaming简介

Spark Streaming是核心Spark API的扩展,可实现可扩展、高吞吐量、可容错的实时数据流处理。数据可以从诸如Kafka,Flume,Kinesis或TCP套接字等众多来源获取,并且可以使用由高级函数(如map,reduce,join和window)开发的复杂算法进行流数据处理。最后,处理后的数据可以被推送到文件系统,数据库和实时仪表板。而且,您还可以在数据流上应用Spark提供的机器学习和图处理算法

在这里插入图片描述

Spark Streaming的特点

在这里插入图片描述

Spark Streaming的内部结构

在内部,它的工作原理如下。Spark Streaming接收实时输入数据流,并将数据切分成批,然后由Spark引擎对其进行处理,最后生成“批”形式的结果流。

在这里插入图片描述
Spark Streaming将连续的数据流抽象为discretizedstream或DStream。在内部,DStream 由一个RDD序列表示。

案例:NetworkWordCount

由于在本案例中需要使用netcat网络工具,所以需要先安装
Linux命令
yum install nc

**启动netcat数据流服务器,并监听端口:1234
命令:nc -l -p 1234
服务器端
在这里插入图片描述
启动客户端
bin/run-example streaming.NetworkWordCount localhost 1234
客户端:
在这里插入图片描述
(一定注意):如果要执行本例,必须确保机器cpu核数大于2
在这里插入图片描述

开发自己的NetworkWordCount

在这里插入图片描述
(一定注意):
val sparkConf = new SparkConf().setAppName(“NetworkWordCount”).setMaster(“local[2]”)

官方的解释:
在这里插入图片描述


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值