SparkStreaming概述

SparkStreaming主要用于流式计算,处理实时数据。

DStream是SparkStreaming中的数据抽象模型,表示随着时间推移收到的数据序列。

SparkStreaming支持多种数据输入源(如Kafka、Flume、Twitter、TCP套接字等)和数据输出位置(如HDFS、数据库等)。

SparkStreaming特点

易用性:支持Java、Python、Scala等编程语言,编写实时计算程序如同编写批处理程序。

容错性:无需额外代码和配置即可恢复丢失的数据,允许随时返回上一步重新计算。

整合性:可以在Spark上运行,重复使用相关代码进行批处理,实现交互式查询操作。

SparkStreaming架构

驱动程序:StreamingContext处理所收到的数据的Spark作业,并传给SparkContext。

工作节点:处理所收到的数据的任务,接收器接收并长期运行任务。

背压机制:协调数据接收能力和资源处理能力,避免数据堆积溢出或资源浪费。

自定义数据源

1.创建自定义数据源

需要导入新的函数并继承现有函数。

创建时选择class类型而非object类型。

2.定义数据源

在class中定义onstart和onstop方法。

onstart方法中创建新线程并调用接收数据的方法。

onstop方法为空。

3.接收数据

连接到指定主机和端口号。

创建输入流并转换为字符流。

使用缓冲字符输入流读取数据并写入input中。

判断是否停止,若未停止且数据非空则继续写入sparkstream。

调用自定义数据源

1.配置对象和流对象

填写配置对象和stream对象。

2.调用自定义函数

提供主机名和端口号。

获取数据后进行资金统计。

数据处理

1.扁平化数据

将所有数据根据空格切分并进行扁平化处理。

转换成键值对形式,相同单词进行分组累加,实现词频统计。

2.输出结果

手动终止或程序异常时输出结果并终止程序。

相关推荐
海豚调度5 分钟前
结项报告完整版 | 为 Apache DolphinScheduler 添加 gRPC 插件
大数据·任务调度·开源社区·大数据调度·apachedolphinscheduler
组合缺一13 分钟前
Solon AI 开发学习 - 1导引
java·人工智能·学习·ai·openai·solon
q***146415 分钟前
MySQL 批量插入详解:快速提升大数据导入效率的实战方法
大数据·数据库·mysql
brave and determined29 分钟前
可编程逻辑器件学习(day24):异构计算:突破算力瓶颈的未来之路
人工智能·嵌入式硬件·深度学习·学习·算法·fpga·asic
YangYang9YangYan1 小时前
大专生考研深度解析与科学备考指南
大数据·考研
0***R5152 小时前
大数据进阶
大数据
mucheni2 小时前
迅为RK3568开发板OpeHarmony学习开发手册-修改应用程序名称
linux·前端·学习
MaisieKim_2 小时前
数据驱动与直觉决策冲突时该怎么办
大数据
YJlio3 小时前
进程和诊断工具学习笔记(8.19):Hyper-V 来宾调试与符号配置 —— 在虚拟化场景下用 LiveKd 抓现场
网络·笔记·学习
冻感糕人~3 小时前
Agent框架协议“三部曲”:MCP、A2A与AG-UI的协同演进
java·人工智能·学习·语言模型·大模型·agent·大模型学习