2017-02-10 8 views
0

Как потреблять Kakfa topic messages в нескольких потребителей с помощью Direct Stream approach?Спарк Direct Streaming - потреблять такое же сообщение в нескольких потребителей

Возможно ли это? Поскольку подход Direct Stream не имеет концепции Consumer Group.

Что происходит, если я передаю group.id как kafkaparams для метода DirectStream? Нижеприведенный код работает with group.id как Kafka Params также 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

Ничего не происходит, Sparks прямой потоковый подход не принимает во внимание параметр ID группы на всех, как она использует более низкий уровень SimpleConsumer. Вы не можете использовать одну и ту же тему с различными потоками прямого подхода Spark. Вы можете отнестись к более раннему подходу на основе приемника, который использует группы.

 Смежные вопросы

  • Нет связанных вопросов^_^