RestHighLevelClient не найден в Scala - PullRequest
       4

RestHighLevelClient не найден в Scala

0 голосов
/ 05 февраля 2020

Я пытаюсь вставить в ElasticSearch (ES) в программе Scala.

В build.sbt я добавил

libraryDependencies += "org.elasticsearch.client" % "elasticsearch-rest-high-level-client" % "7.5.2" ,
libraryDependencies += "org.elasticsearch" % "elasticsearch" % "7.5.2"

Мой код

val client = new RestHighLevelClient( RestClient.builder(new HttpHost("localhost", 9200, "http")))

При компиляции я получаю сообщения об ошибках, как показано ниже

not found: type RestHighLevelClient
not found: value RestClient

Не хватает ли мне импорта? Моя цель - получить поток от Flink и вставить в ElasticSearch. Любая помощь очень ценится.

1 Ответ

0 голосов
/ 05 февраля 2020

Чтобы использовать Elasticsearch с Flink, будет проще, если вы будете использовать Flink's ElasticsearchSink, а не работать с RestHighLevelClient напрямую. Однако версия этого приемника для Elasticsearch 7.x появится в Flink 1.10, которая еще не была выпущена (она появится очень скоро; RC1 уже вышел).

Использование этого соединителя требует дополнительной зависимости, например flink-connector-elasticsearch6_2.11 (или flink-connector-elasticsearch7_2.11, поставляется с Flink 1.10).

См. документы по использованию Elasticsearch с Flink .

Причина, по которой вы предпочитаете слив Flink вместо RestHighLevelClient, заключается в том, что приемник Flink выполняет массовые запросы, обрабатывает ошибки и повторяет попытки, и он связан с механизмом контрольных точек Флинка, так что он может гарантировать, что ничего не будет потеряно, если что-то не получится.

Что касается вашего фактического вопроса, возможно, вам нужно добавить

libraryDependencies += "org.elasticsearch.client" % "elasticsearch-rest-client" % "7.5.2"
...