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

相关推荐
睎zyl1 小时前
Spark自定义分区器-基础
大数据·分布式·spark
巨龙之路2 小时前
【TDengine源码阅读】DLL_EXPORT
大数据·时序数据库·tdengine
0吉光片羽02 小时前
【SpringBoot】集成kafka之生产者、消费者、幂等性处理和消息积压
spring boot·kafka·linq
元6333 小时前
搭建spark-local模式
大数据·spark
巨龙之路3 小时前
TDengine编译成功后的bin目录下的文件的作用
大数据·时序数据库·tdengine
莫叫石榴姐3 小时前
大模型在数据分析领域的研究综述
大数据·数据挖掘·数据分析
百锦再3 小时前
大数据技术的主要方向及其应用详解
大数据·linux·网络·python·django·pygame
找不到、了5 小时前
MQ消息队列的深入研究
kafka·java-rocketmq·java-rabbitmq·java-activemq
巨龙之路5 小时前
【TDengine源码阅读】#if defined(__APPLE__)
大数据·时序数据库·tdengine
菜菜菜小狗5 小时前
kafka----初步安装与配置
kafka