gpt4 book ai didi

apache-spark - elastic4s 与 ssl 配置 Elasticsearch 不工作

转载 作者:太空宇宙 更新时间:2023-11-03 13:20:11 25 4
gpt4 key购买 nike

下面是我用来在 spark scala 代码中从 elasticsearch 访问索引数据的脚本。它工作得很好。

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"

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

Could you please help me to change this script so that it can also work with SSL configured 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。如果我遗漏了什么,请告诉我。

请注意:我使用的是以下版本:

Spark - 2.4.3

Elasticsearch - 6.2.4

elastic4s - 6.3.3

scala - 2.11

最佳答案

我对 elastic4s 做了一些研究,得出的结论是它支持 SSL 但不支持身份验证(使用 Search Guard)。因此,我编写了自己的 Scala 方法来对 Elastic Search 执行所有必需的操作。它运行良好。

我的 GitHub 链接如下:

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

关于apache-spark - elastic4s 与 ssl 配置 Elasticsearch 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57070209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com