Почему аргумент "themes" в KafkaUtils.createStream () является картой, а не массивом? - PullRequest
4 голосов
/ 05 июня 2019

Определение в документах:

org.apache.spark.streaming.kafka

Класс KafkaUtils

static JavaPairReceiverInputDStream<String,String> createStream(JavaStreamingContext jssc, String zkQuorum, String groupId, java.util.Map<String,Integer> topics)

Создатьпоток ввода, который получает сообщения от Kafka Brokers.

Почему разделы являются картой (а не массивом строк)?

Я понимаю, что строковый ключ - это название темы.Но как насчет целочисленного значения?Что я должен заполнить?

Ответы [ 3 ]

3 голосов
/ 05 июня 2019

Если вы видите документацию createStream метода KafkaUtils здесь , вы увидите

тем - Карта (topic_name -> numPartitions) дляпотребляют.Каждый раздел используется в своем собственном потоке

Целочисленное значение - это количество разделов для темы как части ключа на карте.

3 голосов
/ 05 июня 2019

Чтение Javadoc :

общедоступная статическая JavaPairReceiverInputDStream createStream (JavaStreamingContext jssc, строка zkQuorum, String groupId, java.util.Map)

Создать поток ввода, который получает сообщения от Kafka Brokers.Уровень хранения данных будет по умолчанию StorageLevel.MEMORY_AND_DISK_SER_2.

Параметры: jssc - объект JavaStreamingContext

zkQuorum - кворум Zookeeper (имя хоста: порт, имя хоста: порт, ..)

groupId - идентификатор группы для этого потребителя.

themes - Карта (topic_name -> numPartitions ) для использования. Каждый раздел используется в своем собственном потоке

Возвращает: DStream of (ключ сообщения Kafka, значение сообщения Kafka)

Значение Map равноколичество разделов данного имени темы, которое определяет количество потоков, которые будут использоваться для использования темы.

1 голос
/ 05 июня 2019

Из Javadoc: https://spark.apache.org/docs/1.3.0/api/java/index.html?org/apache/spark/streaming/kafka/KafkaUtils.html

themes - Карта (topic_name -> numPartitions) для использования.Каждый раздел используется в своем собственном потоке

, поэтому каждое число - это количество разделов, которые вы хотите использовать для этой темы

...