Spark-Streaming简介及核心编程

一、核心概念:

1.Spark-Streaming 是流式数据处理框架,基于 **DStream(离散化流)** 抽象,将实时数据划分为多个时间区间的 RDD 序列。

DStream 本质是RDD 序列,每个时间区间数据对应一个 RDD。

2.特点:

易用性:支持 Java、Python、Scala 等语言,编程方式类似离线处理。

容错性:无需额外配置即可恢复丢失数据。

易整合性:可与 Spark 批处理结合,支持离线与实时处理统一代码。

3.架构与机制:

背压机制:Spark 1.5 + 引入,通过spark.streaming.backpressure.enabled控制(默认false),根据作业执行情况动态调整数据接收速率,替代静态参数spark.streaming.receiver.maxRate。

实操案例:

WordCount 案例:通过socketTextStream读取 TCP 端口(如 9999)数据,经flatMap、map、reduceByKey等操作统计单词计数,时间间隔设置为3 秒

二、Spark-Streaming 核心编程

1.DStream 创建方式:

RDD 队列:通过ssc.queueStream(queueOfRDDs)创建,案例中使用队列循环添加 RDD(含 1-300 的整数),时间间隔4 秒,每次添加后线程休眠2000 毫秒。

自定义数据源:继承Receiver类,实现onStart(启动线程接收数据)和onStop方法,案例中监控端口 9999,时间间隔5 秒,通过receiverStream获取数据。

关键实现:

自定义CustomerReceiver类通过 Socket 读取指定端口数据,使用store(input)存储数据,并在连接中断时调用restart("restart")重启

相关推荐
chat2tomorrow16 分钟前
数据采集平台的起源与演进:从ETL到数据复制
大数据·数据库·数据仓库·mysql·低代码·postgresql·etl
a5876916 分钟前
消息队列(MQ)初级入门:详解RabbitMQ与Kafka
java·分布式·microsoft·面试·kafka·rabbitmq
TDengine (老段)1 小时前
TDengine 选择函数 Max() 用户手册
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
乐迪信息1 小时前
乐迪信息:AI摄像机在智慧煤矿人员安全与行为识别中的技术应用
大数据·人工智能·算法·安全·视觉检测
Hello.Reader1 小时前
Kafka在多环境中安全管理敏感
分布式·安全·kafka
小朋友,你是否有很多问号?2 小时前
spark11-sparkSQL 实现wordcount
spark
万邦科技Lafite4 小时前
实战演练:通过API获取商品详情并展示
大数据·数据库·python·开放api接口
在未来等你4 小时前
Elasticsearch面试精讲 Day 14:数据写入与刷新机制
大数据·分布式·elasticsearch·搜索引擎·面试
黄焖鸡能干四碗4 小时前
智慧教育,智慧校园,智慧安防学校建设解决方案(PPT+WORD)
java·大数据·开发语言·数据库·人工智能
phac1234 小时前
git 如何直接拉去远程仓库的内容且忽略本地与远端不一致的commit
大数据·git·elasticsearch