우리는 spark-streaming-kafka-0-8 수신기를 사용하고 있습니다. numPartitions를 늘려서 소비되는 이벤트의 양을 늘릴 수 없습니다. 증가하는 numPartitions가 성능에 영향을 미치지 않는 것 같습니다.Spark Streaming Kafka Receivers API - numPartitions
KafkaUtils.createStream 메소드에는 topic_name에서 numPartitions까지의 맵핑이 있지만 각 파티션은 자체 스레드에서 사용되어야합니다. 1 개 실을 사용하는 경우보다 훨씬 더 많은 이벤트를 가져옵니다,하지만하지 않습니다 - (> 10 주제)
KafkaUtils.createStream[Integer, Event, IntegerDecoder, EventDecoder](ssc,
Configuration.kafkaConfig, scala.collection.immutable.Map(topic -> 1),
StorageLevel.MEMORY_AND_DISK)
내가 scala.collection.immutable.Map를 사용하여 기대
:
는 현재 우리가 작업하는 성능 향상 (실제로 10 개의 스레드가 리시버 당 10 개의 쓰레드가 사용되었음을 확인했다.) 은을 향상 시키지만 더 많은 카프카 리시버를 생성하면 성능이 향상된다.버전 0-8에서 문제가 있습니까? numPartitions가 증가하면 소비되는 이벤트의 양이 증가해야합니까? numPartition을 늘리는 동안 수신기를 추가하면 성능이 향상되는 이유는 무엇입니까?