整合原理
Kafka在0.8和0.10版本之间引入了一个新的消费者API,Spark针对这两个版本有两个单独对应的Spark Streaming包可用,分别为spark-streaming-kafka-0-8和spark-streaming-kafka-0-10。需要注意的是,前者兼容Kafka 0.8、0.9、0.10,后者只兼容Kafka 0.10及之后的版本。而从Spark 2.3.0开始,对Kafka 0.8的支持就被弃用了,因此本书使用spark-streaming-kafka-0-10包进行讲解,使用的Kafka版本为3.1.0。
从Spark 1.3开始引入了一种新的无Receiver的直连(Direct)方法,以确保更强的端到端保证。这种方法不使用Receiver来接收数据,而是定期查询Kafka在每个主题和分区中的最新偏移量(Offset),并相应地定义在每个批处理中要处理的偏移量范围。启动处理数据的作业时,Kafka的简单消费者API用于从Kafka读取已定义的偏移量范围数据(类似于从文件系统读取文件)。这种方法的作业流程如图
本文介绍了如何使用Spark Streaming结合spark-streaming-kafka-0-10包,对接Kafka 3.1.0进行实时数据处理。讲解了无Receiver的直连方法的优势,包括简化并行性、提高效率和实现恰好一次语义。同时,详细阐述了编写和运行Spark Streaming整合Kafka的单词计数程序的步骤,包括配置、创建DStream和运行应用程序。
订阅专栏 解锁全文
4444

被折叠的 条评论
为什么被折叠?



