Kafka在0.8
和0.10
之间引入了一种新的消费者API,因此,Spark Streaming与Kafka集成,有两种包可以选择: spark-streaming-kafka-0-8
与spark-streaming-kafka-0-10
。在使用时应注意以下几点:
-
spark-streaming-kafka-0-8
兼容Kafka 0.8.2.1及以后
的版本, 从Spark 2.3.0
开始,对Kafka 0.8
支持已被标记为过时。 -
spark-streaming-kafka-0-10
兼容Kafka 0.10.0及以后
的版本, 从Spark 2.3.0
开始, 此API是稳定版。 -
如果Kafka版本大于等于
0.10.0
,且Spark版本大于等于Spark 2.3.0
,应使用spark-streaming-kafka-0-10
。
本文总结spark-streaming-kafka-0-8
中两种读取Kafka数据的方式:createStream
、createDirectStream
。
基于Receiver方式
POM依赖
1 <dependencies> 2 <!--spark-streaming--> 3 <dependency> 4 <groupId>org.apache.spark</groupId> 5 <artifactId>spark-streaming_2.11</artifactId> 6 <version>2.2.2</version> 7 </dependency> 8 9 <!--spark-streaming-kafka-plugin--> 10 <dependency> 11 <groupId>org.apache.spark</groupId> 12 <artifactId>spark-streaming-kafka-0-8_2.11</artifactId> 13 <version>2.2.2</version> 14 </dependency> 15 </dependencies>