Запись в несколько приемников ES из Spark Streaming Job - PullRequest
0 голосов
/ 08 января 2020

Я использую потоковую передачу Spark для обработки больших объемов данных из очереди Kafka, и мне нужно записать результат в два настроенных кластера ES.

Я использую "org.elasticsearch.elasticsearch-spark- XX "в моем проекте и в состоянии записать в один кластер ES с помощью метода EsSpark.saveJsonToEs(), который внутренне выбирает свойства ES, специфицированные c, из неизменяемого контекста искры.

Итак, если контекст искры неизменен, как я можно изменять свойства во время выполнения и записывать результаты в несколько кластеров ES.

Пожалуйста, предложите.

Ref - https://www.elastic.co/guide/en/elasticsearch/hadoop/6.7/spark.html

1 Ответ

0 голосов
/ 09 января 2020

ИМХО следующий способ с spark.driver.allowMultipleContexts должен работать ... создать сеанс контекста спарка отдельно с новой конфигурацией спарка.

conf.set("es.index.auto.create", "true")
conf.set("es.nodes", "XXXXXXXX")
conf.set("es.port", "9020")
conf.set("spark.driver.allowMultipleContexts", "true")
val sc1 = new SparkContext(conf)

conf.set("es.index.auto.create", "true")
conf.set("es.nodes", "yyyyyy")
conf.set("es.port", "9020")
conf.set("spark.driver.allowMultipleContexts", "true")
val sc2 = new SparkContext(conf)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...