Spark-Streaming核心编程

一、Kafka

  1. Topic相关

生产数据的命令涉及脚本、broker list、主机号和端口号、topic名称等要素;消费数据命令中的参数名与生产数据有所不同,并且如果要从头开始消费需要添加特定参数,同时分区间的数据无序但分区中的数据有序,还需指定消费者组。

  1. Kafka作为Spark数据源创建DataFrame的方式

采用的是direct API,由计算的executor主动消费数据,避免了因接收速度大于计算速度而产生的内存溢出。

二、基于Spark Streaming读取Kafka数据的小案例

  1. 代码实现步骤

首先是导入依赖到POM文件中。

在代码方面,配置Spark相关对象,设定Kafka的相关参数(包括Kafka运行的主机号和端口号、消费者所在组、字符串序列方式等四个参数)。

创建Spark Streaming对象(SSC),涉及多个参数(原封不动写上的连接对象、分区分配策略、消费者消费策略等),然后通过读取Kafka数据创建DataFrame。

对读取的数据进行操作,如通过map映射只取数据中的值部分,后续进行词频计算相关的操作(包括split、flatMap、map、reduceByKey等操作),最后处理开始、停止相关逻辑(一般手动停止或者遇到异常停止)。

  1. 运行流程

开启Kafka集群,确保在node01、node02、node03等节点都能找到Kafka。

创建名为Kafka的topic

打开集群

开启Kafka生产者,产生数据

kafka-console-producer.sh --broker-list node01:9092,node02:9092,node03:9092 --topic kafka

相关推荐
淘矿人2 小时前
Claude辅助DevOps实践
java·大数据·运维·人工智能·算法·bug·devops
SeaTunnel2 小时前
AI 让 SeaTunnel 读源码和调试过时了吗?
大数据·数据库·人工智能·apache·seatunnel·数据同步
WL_Aurora3 小时前
MapReduce【Shuffle-Combiner】
大数据·mapreduce
Mortalbreeze3 小时前
深度理解文件系统 ---- 从磁盘存储到内核存储
大数据·linux·数据库
Bechamz4 小时前
大数据开发学习Day36
大数据·学习
C-20024 小时前
基于 JumpServer 容器化部署 ES 集群
大数据·elasticsearch·搜索引擎
captain_AIouo4 小时前
降本增效突围,Captain AI助力Ozon商家提升盈利空间
大数据·人工智能·经验分享·aigc
黎阳之光6 小时前
视听融合新范式!黎阳之光打破视觉边界,声影协同赋能全域智慧管控
大数据·人工智能·物联网·算法·数字孪生
iiiiyu6 小时前
集合进阶(Map集合)
java·大数据·开发语言·数据结构·编程语言
塔能物联运维6 小时前
存量机房降本增效:两相液冷技术解锁全生命周期成本优化密码
大数据·人工智能