我正在使用Spark Streaming来使用来自Kafka
主题的数据。
如果我使用DirectStream
方法,我无法定义consumer group
和number of consumers
。
例如:
val messages = KafkaUtils.createDirectStream[String, String, StringDecoder, StringDecoder](ssc, kafkaParams, topicsSet)
我在哪里定义此群组的消费者群体和消费者数量?
如果我使用基于Receiver的方法,我可以选择定义consumer group
和number of threads
[此群组中的消费者数量]。
基于接收方的方法:
val topicMap = topics.split(",").map((_, numThreads.toInt)).toMap
val lines = KafkaUtils.createStream(ssc, zkQuorum, group, topicMap).map(_._2)
答案 0 :(得分:1)
使用Spark Streaming DirectStream方法时没有使用Consumer Group概念。
根据Spark Streaming Document
使用directStream,Spark Streaming将创建尽可能多的RDD分区 因为要使用Kafka分区,所有分区都会读取数据 来自卡夫卡并行。所以Kafka之间有一对一的映射 和RDD分区