从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这个命令就行,它能清楚地告诉你数据处理到什么程度了。
相关推荐
AI视觉网奇2 小时前
rag学习笔记
笔记·学习
teeeeeeemo4 小时前
http和https的区别
开发语言·网络·笔记·网络协议·http·https
wuxuanok4 小时前
Web后端开发-Mybatis
java·开发语言·笔记·学习·mybatis
卷到起飞的数分4 小时前
Java零基础笔记07(Java编程核心:面向对象编程 {类,static关键字})
java·开发语言·笔记
iFulling5 小时前
【计算机网络】第三章:数据链路层(下)
网络·笔记·计算机网络
巴伦是只猫5 小时前
【机器学习笔记 Ⅱ】4 神经网络中的推理
笔记·神经网络·机器学习
java攻城狮k5 小时前
【跟着PMP学习项目管理】项目管理 之 成本管理知识点
经验分享·笔记·学习·产品经理
Dann Hiroaki14 小时前
笔记分享: 哈尔滨工业大学CS31002编译原理——02. 语法分析
笔记·算法
KhalilRuan14 小时前
Unity-MMORPG内容笔记-其三
笔记
kfepiza15 小时前
Debian的`/etc/network/interfaces`的`allow-hotplug`和`auto`对比讲解 笔记250704
linux·服务器·网络·笔记·debian