elastic4s с настроенным ssl эластичный поиск не работает

Ниже приведен сценарий, который я использую для доступа к данным индекса из elasticsearch в коде Spark Scala. Он работает отлично.

import com.sksamuel.elastic4s.http.{ElasticClient, ElasticProperties}
import com.sksamuel.elastic4s.http.ElasticDsl._
val esUrl = "http://" + <ip> + ":" + <port>
val client = ElasticClient(ElasticProperties(esUrl))
val response = client.execute(
        deleteIn(Index/Type).by(matchQuery(indexField, values))
      )

Теперь я настроил ES как SSL и пытаюсь получить доступ к тем же данным, но это не работает, так как мне нужно передать здесь данные SSL. Итак, я прошел ниже URL-адреса, но он дает неверную ошибку URL-адреса.

https://user:pass@<ip>:<port>?ssl=true"

or

https://user:pass@<ip>:<port>"

Не могли бы вы помочь мне изменить этот сценарий, чтобы он также мог работать с настроенным SSL ES?

Я также пытался использовать HttpClient вместо ElasticClient, но он не работает и выдает странную ошибку, как показано ниже:

scala> import com.sksamuel.elastic4s.http.HttpClient
import com.sksamuel.elastic4s.http.HttpClient

scala> val esUrl = "elasticsearch://user:pass@<ip>:<port>?ssl=true"
esUrl: String = elasticsearch://user:pass@<ip>:<port>?ssl=true

scala> val client = HttpClient(ElasticsearchClientUri(esUrl))
    <console>:43: error: not found: value HttpClient

Я хочу использовать для него тот же ElasticClient. Пожалуйста, дайте мне знать, если я что-то пропустил.

Обратите внимание: я использую следующую версию:

Искра – 2.4.3

ElasticSearch — 6.2.4

elastic4s — 6.3.3

скала – 2.11


person Nikk    schedule 17.07.2019    source источник


Ответы (1)


Я провел несколько исследований для elastic4s и пришел к выводу, что он поддерживает SSL, но не поддерживает аутентификацию (с использованием Search Guard). Поэтому я написал свой собственный метод Scala для выполнения всех необходимых операций над эластичным поиском. Он работает отлично.

Моя ссылка на GitHub ниже:

https://medium.com/@n.suthar.online/scalaes-apache-spark-and-elasticsearch-connector-d6bc927f8c51

person Nikk    schedule 31.07.2019
comment
Можете ли вы поделиться своим кодом для аутентификации. и Как создать шаблон с использованием файла json (сопоставление, настройка). - person user1668782; 31.08.2019
comment
Извините за задержку. Пожалуйста, проверьте ссылку: github.com/NikhilSuthar/ScalaES - person Nikk; 10.10.2019
comment
@Nikk Ваша ссылка не работает. Ты можешь. пожалуйста, поделитесь своим кодом. - person Basant Jain; 21.05.2020
comment
@Nikk Я хочу передать путь сертификата хранилища доверенных сертификатов ssl и пароль хранилища доверенных сертификатов ssl вместе с аутентификацией. Не могли бы вы помочь мне с этим? - person Basant Jain; 21.05.2020
comment
@BasantJain Извините, я не смогу предоставить вам код. Но я опубликовал один блог на среде, который может вам помочь. Я обновил ссылку выше, пожалуйста, проверьте ее. Вы можете напрямую передать имя пользователя и пароль и оставить флаг SSL истинным. Для сертификата вам необходимо установить его в свой Java Keytool. Пройдитесь по блогу, это вам поможет - person Nikk; 21.05.2020