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

相关推荐
Elastic 中国社区官方博客40 分钟前
如何在 vscode 里配置 MCP 并连接到 Elasticsearch
大数据·人工智能·vscode·elasticsearch·搜索引擎·ai·mcp
王嘉俊9252 小时前
Kafka 和 RabbitMQ 使用:消息队列的强大工具
java·分布式·中间件·kafka·消息队列·rabbitmq·springboot
cominglately2 小时前
kafka和rocketmq的副本机制区别: isr 主从模式,Dledger模式
分布式·kafka·rocketmq
qyt19885202 小时前
关于队列的比较(Kafka、RocketMQ、RabbitMQ)
kafka·rabbitmq·rocketmq
计算机毕设残哥2 小时前
紧跟大数据技术趋势:食物口味分析系统Spark SQL+HDFS最新架构实现
大数据·hadoop·python·sql·hdfs·架构·spark
CDA数据分析师干货分享3 小时前
【CDA干货】Excel 的 16类常用函数之计算统计类函数
大数据·数据挖掘·数据分析·excel·cda证书·cda数据分析师
秃头菜狗3 小时前
十、Hadoop 核心目录功能说明表
大数据·hadoop·分布式
秃头菜狗9 小时前
八、安装 Hadoop
大数据·hadoop·分布式
零千叶11 小时前
【面试】Kafka / RabbitMQ / ActiveMQ
面试·kafka·rabbitmq
毕设源码-郭学长15 小时前
【开题答辩全过程】以 Python基于大数据的四川旅游景点数据分析与可视化为例,包含答辩的问题和答案
大数据·python·数据分析