最近开始做实时的项目,在这记录一下在工作中遇到的一些问题,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
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.11</artifactId>
<version>2.3.0</version>
</dependency>
Kafka是用Scala语言编写的,版本号格式为:Kafka_scala版本_kafka版本。
SparkStreaming对接kafka版本
通过maven仓库搜索,可以看到有两个版本:0.8和0.10,这里推荐使用0.10。
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming-kafka-0-10_2.11</artifactId>
<version>2.3.2</version>
</dependency>
version 表示 spark 版本,scala 表示 scala 版本,大家可以根据本地环境进行版本选择。