Spark Direct Streaming - 在多个使用者中使用相同的消息

时间:2017-02-10 09:13:50

标签: scala spark-streaming kafka-consumer-api

如何使用Kakfa topic messages

在多个消费者中使用Direct Stream approach?

有可能吗?由于Direct Stream方法没有Consumer Group概念。

如果我将group.id作为kafkaparams传递给DirectStream方法,会发生什么?以下代码作为Kafka Params with group.id使用without group.id

示例代码:

val kafkaParams = Map(
  "group.id" -> "group1", 
  CommonClientConfigs.SECURITY_PROTOCOL_CONFIG -> sasl,
  ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG -> "org.apache.kafka.common.serialization.StringDeserializer",
  ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG -> "org.apache.kafka.common.serialization.StringDeserializer",
  "metadata.broker.list" -> brokerList,
  "zookeeper.connect" -> zookeeperURL
)

val dStream = 
  KafkaUtils.createDirectStream[String, String, StringDecoder, StringDecoder](
    ssc, kafkaParams, topicSet
  ).map(_._2)

1 个答案:

答案 0 :(得分:1)

没有任何反应,Sparks直接流方法根本不考虑组ID参数,因为它使用较低级别SimpleConsumer。您不能使用不同的Spark直接方法流使用相同的主题。您可以遵循使用群组的旧接收器方法。