【发布时间】:2017-12-26 08:53:01
【问题描述】:
我们正在使用 spark-streaming-kafka-0-8 接收器。我们无法通过增加 numPartitions 来增加消耗事件的数量。似乎增加 numPartitions 不会影响性能。
KafkaUtils.createStream 方法有一个 topic_name 到 numPartitions 映射,而每个分区都应该在自己的线程中使用。
目前我们正在合作:
KafkaUtils.createStream[Integer, Event, IntegerDecoder, EventDecoder](ssc,
Configuration.kafkaConfig, scala.collection.immutable.Map(topic -> 1),
StorageLevel.MEMORY_AND_DISK)
我希望使用 scala.collection.immutable.Map(topic -> 10) 会比使用 1 个线程时拉出更多的事件,但它不会提高性能(我确保实际上使用了 10 个线程每个接收器)
但是,如果我创建更多 Kafka 接收器(据我了解,这完全等同于增加线程),性能确实会提高。
这是版本 0-8 的问题吗? 增加 numPartitions 是否应该提高消耗事件的数量? 为什么增加接收器可以提高性能,而增加 numPartition 却不能?
【问题讨论】:
标签: scala apache-kafka spark-streaming