从Kafka读取数据

用Spark-Streaming从Kafka读取数据

  • 在大数据处理领域,Spark-Streaming和Kafka都是明星技术。今天咱们就来聊聊怎么用Spark-Streaming从Kafka读取数据并做处理,就算你是小白,也保证能看懂!
  • 先讲讲从Kafka获取数据的两种方式。早期有个ReceiverAPI,它需要专门的Executor接收数据,再发给其他Executor计算。想象一下,接收数据的人速度特别快,计算的人跟不上,数据就堆在计算的节点上,最后内存都被占满,这就是 ReceiverAPI 的问题,所以现在它不太常用了。
  • 后来出现了DirectAPI,它让计算的Executor自己主动去Kafka拿数据,速度自己能掌控,就像你自己去超市拿东西,想要多少、什么时候拿都自己决定,是不是方便多了?现在主流用的就是DirectAPI这种方式。
  • 下面进入实操环节。假设我们要通过SparkStreaming从Kafka读取数据,简单计算后打印到控制台。
  • 第一步,得在项目里导入依赖。就像搭积木,得先把要用的积木都准备好。在项目的配置文件里加上这段代码:
  • <dependency>
  • <groupId>org.apache.spark</groupId>
  • <artifactId>spark-streaming-kafka-0-10_2.12</artifactId>
  • <version>3.0.0</version>
  • </dependency>
  • 这就把和Kafka交互的"工具"准备好了
  • 第二步,开始写代码。在代码里,先创建一个Spark配置,告诉程序要在哪里运行,叫什么名字,就像给它安排好"工作地点"和"名字牌"。然后创建一个StreamingContext,设置数据处理的时间间隔。接着定义Kafka的参数,比如Kafka集群的地址、消费者组ID,还有数据的反序列化方式,这就像是告诉程序去哪里找Kafka,属于哪个"消费小组",以及怎么把数据"翻译"成能看懂的格式。
  • 准备好这些,就能通过KafkaUtils创建DStream来读取Kafka的数据啦。读取后,提取出数据里我们需要的部分,这里是value。再用熟悉的wordCount计算逻辑,把数据按空格切开、统计词频,最后打印出来。代码都写好后,启动程序,让它开始工作。
  • 接下来,还得启动Kafka集群,就像把工厂的机器都打开。再开启Kafka生产者,让它产生数据,这些数据就是我们要处理的"原材料"。一切准备就绪,运行程序,就能看到Spark-Streaming成功接收Kafka的数据并处理啦!
  • 最后,如果想看看消费进度,用kafka-consumer-groups.sh这个命令就行,它能清楚地告诉你数据处理到什么程度了。
相关推荐
三品吉他手会点灯11 小时前
STM32F103 学习笔记-24-I2C-读写EEPROM(第1节)-I2C物理层介绍
笔记·stm32·学习
万物更新_12 小时前
vue框架
前端·javascript·vue.js·笔记
上海观智网络12 小时前
上海小程序定制开发合同怎么签?需要注意什么?
经验分享·笔记·小程序
Ab_stupid13 小时前
CTF-Crypto培训笔记-现代密码
笔记·des·aes·rsa·crypto
IT技术学习13 小时前
打包系统为ISO
笔记
就叫飞六吧14 小时前
数学图形绘制在线网站
笔记
SHARK_pssm14 小时前
【数据结构——树与堆】
c语言·数据结构·经验分享·笔记
怪味&先森15 小时前
读书小结—《认知觉醒》
笔记
杨先生哦15 小时前
2026 热端攻防:AI 驱动 Web 前端安全全景透析
前端·笔记·安全·web安全
Cloud_Shy61816 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第七章 Item 48 - 50)
开发语言·人工智能·笔记·python·microsoft·学习方法