私たちはspark-streaming-kafka-0-8レシーバを使用しています。 numPartitionsを増やしてイベントの消費量を増やすことはできません。 numPartitionsの増加はパフォーマンスに影響しないようです。Spark Streaming Kafka Receivers API-numPartitions
KafkaUtils.createStreamメソッドは、topic_nameからnumPartitionsまでのマップを持ちますが、各パーティションはそれぞれのスレッドで使用する必要があります。
現在我々が取り組んでいる: - 1つのスレッドを使用した場合よりもはるかに多くのイベントを引っ張ってくるが、それはない
KafkaUtils.createStream[Integer, Event, IntegerDecoder, EventDecoder](ssc,
Configuration.kafkaConfig, scala.collection.immutable.Map(topic -> 1),
StorageLevel.MEMORY_AND_DISK)
私はscala.collection.immutable.Map(> 10トピック)が使用して期待します
しかし、もっと多くのカフカレシーバを作成すると(私の理解ではスレッドの増加と全く同じです)、パフォーマンスはを改善します。
これはバージョン0-8の問題ですか? numPartitionsを増やすと、消費されるイベントの量が増えるはずですか? numPartitionを増やしている間に受信者を追加するとパフォーマンスが向上するのはなぜですか?