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")重启

相关推荐
虫小宝5 分钟前
返利app排行榜系统设计:基于大数据计算的实时排名算法实现
大数据·算法
风途知识百科19 分钟前
并网/分布式光伏气象站
人工智能·分布式
云和数据.ChenGuang24 分钟前
运维工程师技术教程之Pull Requests(PR)
运维·分布式·git·数据库运维工程师·运维教程
Hello.Reader44 分钟前
Flink Table API & SQL Functions 函数类型划分、引用方式与解析优先级
大数据·sql·flink
啊吧怪不啊吧1 小时前
机器学习模型部署全流程实战:从训练完成到上线可用
大数据·人工智能·机器学习
Data_agent1 小时前
京东商品价格历史信息API使用指南
java·大数据·前端·数据库·python
专业机床数据采集1 小时前
西门子数控数采集变量与说明对照表
大数据·网络·cnc数据采集
西***63471 小时前
破局信息孤岛 赋能城市智治——分布式可视化系统驱动智慧城市指挥中心升级
人工智能·分布式·智慧城市
老蒋新思维1 小时前
创客匠人:当知识IP遇上系统化AI,变现效率如何实现阶跃式突破?
大数据·网络·人工智能·网络协议·tcp/ip·重构·创客匠人
天远云服1 小时前
Go 语言实战:手撸 AES-128-CBC 加密,对接天远金融风控 API
大数据·服务器·网络·golang