【问题标题】:Spark Direct Streaming - consume same message in multiple consumersSpark Direct Streaming - 在多个消费者中消费相同的消息
【发布时间】:2017-02-10 19:41:59
【问题描述】:

如何使用Direct Stream approach?在多个Consumer中消费Kakfa topic messages

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

如果我将 group.id 作为 DirectStream 方法的 kafkaparams 传递,会发生什么?下面的代码在with group.id 上工作,作为Kafka 参数也可以在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)

【问题讨论】:

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


    【解决方案1】:

    什么都没有发生,Sparks 直接流式传输方法根本不考虑组 ID 参数,因为它使用较低级别的 SimpleConsumer。您不能使用不同的 Spark 直接方法流来使用相同的主题。您可以遵从旧的基于接收器的方法,该方法确实利用了组。

    【讨论】:

      猜你喜欢
      • 2017-02-23
      • 2014-12-30
      • 1970-01-01
      • 2018-12-18
      • 2017-05-04
      • 2016-06-08
      • 2015-02-02
      • 1970-01-01
      • 2020-06-13
      相关资源
      最近更新 更多