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

相关推荐
LaughingZhu1 小时前
Product Hunt 每日热榜 | 2026-01-31
大数据·人工智能·经验分享·搜索引擎·产品运营
babe小鑫1 小时前
中专学历进入快消大厂终端销售岗位的可行性分析
大数据
samFuB1 小时前
【工具变量】区县5A级旅游景区DID数据集(2000-2025年)
大数据
百夜﹍悠ゼ1 小时前
数据治理DataHub安装部署
大数据·数据治理
wdfk_prog2 小时前
解决 `git cherry-pick` 引入大量新文件的问题
大数据·git·elasticsearch
洛阳纸贵2 小时前
JAVA高级工程师--Elasticsearch
大数据·elasticsearch·搜索引擎
TracyCoder1233 小时前
ElasticSearch内存管理与操作系统(二):深入解析 Circuit Breakers(熔断器)机制
大数据·elasticsearch·搜索引擎
外参财观4 小时前
从浏览器到“超级眼”:夸克的突围战
大数据
编程彩机4 小时前
互联网大厂Java面试:从分布式事务到微服务优化的技术场景解读
java·spring boot·redis·微服务·面试·kafka·分布式事务
BYSJMG4 小时前
计算机毕设选题推荐:基于大数据的癌症数据分析与可视化系统
大数据·vue.js·python·数据挖掘·数据分析·课程设计