Spark Streaming 整合 Kafka
一、版本说明
Spark 针对 Kafka 的不同版本,提供了两套整合方案:spark-streaming-kafka-0-8
和 spark-streaming-kafka-0-10
,其主要区别如下:
spark-streaming-kafka-0-8 | spark-streaming-kafka-0-10 | |
---|---|---|
Kafka 版本 | 0.8.2.1 or higher | 0.10.0 or higher |
AP 状态 | Deprecated 从 Spark 2.3.0 版本开始,Kafka 0.8 支持已被弃用 |
Stable(稳定版) |
语言支持 | Scala, Java, Python | Scala, Java |
Receiver DStream | Yes | No |
Direct DStream | Yes | Yes |
SSL / TLS Support | No | Yes |
Offset Commit API(偏移量提交) | No | Yes |
Dynamic Topic Subscription (动态主题订阅) |
No | Yes |
本文使用的 Kafka 版本为 kafka_2.12-2.2.0
,故采用第二种方式进行整合。
二、项目依赖
项目采用 Maven 进行构建,主要依赖如下:
<properties>
<scala.version>2.12</scala.version>
</properties>
<dependencies>
<!-- Spark Streaming-->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
<!-- Spark Streaming 整合 Kafka 依赖-->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming-kafka-0-10_${scala.version}</artifactId>
<ver