最近开始做实时的项目,在这记录一下在工作中遇到的一些问题,SparkStreaming的数据源一般是Kafka,因此,这里简要叙述一下两者对接的准备工作。

spark-streaming-kafka-0-8 spark-streaming-kafka-0-10
支持的 kafka 版本 0.8+ 0.10+
依赖包使用的 spark 版本 2.0 - 及 2.0+ 2.0+
消费方式 直连及基于消费者 createDirectStream
默认偏移存储方式 直连自己处理,基于消费者存 zk 存 kafka topic 里
兼容性 与 0.8 + 的 kafka 都兼容 与 0.10 - 的 kafka 版本不兼容

Kafka版本号格式

https://mvnrepository.com/artifact/org.apache.kafka/kafka
image.png

  1. <dependency>
  2. <groupId>org.apache.kafka</groupId>
  3. <artifactId>kafka_2.11</artifactId>
  4. <version>2.3.0</version>
  5. </dependency>

Kafka是用Scala语言编写的,版本号格式为:Kafka_scala版本_kafka版本。

SparkStreaming对接kafka版本

image.png

通过maven仓库搜索,可以看到有两个版本:0.8和0.10,这里推荐使用0.10。
image.png

image.png

  1. <dependency>
  2. <groupId>org.apache.spark</groupId>
  3. <artifactId>spark-streaming-kafka-0-10_2.11</artifactId>
  4. <version>2.3.2</version>
  5. </dependency>

version 表示 spark 版本,scala 表示 scala 版本,大家可以根据本地环境进行版本选择。