引言
目前来说大部分使用SparkStreaming的项目,都是从Kafka消费数据,为此SparkStreaming提供了一套连接Kafka消费数据的API,使用此套API可以方便智能的建立与Kafka分区的连接,而不再是使用Receiver收数据并转发,以下是对官方文档的翻译及自己的理解。
SparkStreaming消费Kafka
SparkStreaming提供了并行连接kafka的API而不需要使用Receiver。Kafka分区数会与Executor数1:1对应。
操作步骤如下
1.引入依赖
groupId = org.apache.spark
artifactId = spark-streaming-kafka-0-10_2.12
version = 3.1.2
2.创建DStream
val kafkaParams = Map[String, Object](
"bootstrap.servers" -> "localhost:9092,anotherhost:9092",
"key.deserializer" -> classOf[StringDeserializer],
"value.deserializer" -> classOf[StringDeserializer],
"group.id" -> "use_a_separate_group_id_for_each_stream",
"auto.offset.reset" -> "latest",
"enable.auto.commit" -><