首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Scala中找不到RestHighLevelClient

在Scala中找不到RestHighLevelClient
EN

Stack Overflow用户
提问于 2020-02-05 17:49:09
回答 2查看 215关注 0票数 0

我正在尝试插入到ElasticSearch(ES)中的一个Scala程序。

在build.sbt中,我添加了

代码语言:javascript
复制
libraryDependencies += "org.elasticsearch.client" % "elasticsearch-rest-high-level-client" % "7.5.2" ,
libraryDependencies += "org.elasticsearch" % "elasticsearch" % "7.5.2"

我的代码是

代码语言:javascript
复制
val client = new RestHighLevelClient( RestClient.builder(new HttpHost("localhost", 9200, "http")))

在编译时,我得到了如下错误

代码语言:javascript
复制
not found: type RestHighLevelClient
not found: value RestClient

我错过了什么重要的东西吗?我的目标是从Flink获得一个流,并将其插入到ElasticSearch中,感谢您的帮助。

EN

回答 2

Stack Overflow用户

发布于 2020-02-05 18:06:38

要在Flink中使用Elasticsearch,使用Flink的ElasticsearchSink会比直接使用RestHighLevelClient更容易。然而,Elasticsearch 7.x的接收器版本将在Flink 1.10中发布,它还没有发布(它很快就会发布;RC1已经发布了)。

使用这个连接器需要一个额外的依赖项,比如flink-connector-elasticsearch6_2.11 (或flink-connector-elasticsearch7_2.11,随Flink1.10一起提供)。

请参阅docs on using Elasticsearch with Flink

更喜欢Flink的接收器而不是自己使用RestHighLevelClient的原因是,Flink接收器进行批量请求,处理错误和重试,并且它与Flink的检查点机制捆绑在一起,因此它能够保证在某些事情失败时不会丢失任何东西。

至于你的实际问题,也许你需要添加

代码语言:javascript
复制
libraryDependencies += "org.elasticsearch.client" % "elasticsearch-rest-client" % "7.5.2"
票数 0
EN

Stack Overflow用户

发布于 2020-05-07 17:11:24

我们不需要单独使用这些依赖项来通过使用Flink流在Elasticsearch中插入数据。

代码语言:javascript
复制
libraryDependencies += "org.elasticsearch.client" % "elasticsearch-rest-high-level-client" % "7.5.2" ,
libraryDependencies += "org.elasticsearch" % "elasticsearch" % "7.5.2" 

只需使用这个flink-connector-flink ticsearch7或flink-connector-flink ticsearch6即可

代码语言:javascript
复制
libraryDependencies += "org.apache.flink" %% "flink-connector-elasticsearch7" % "1.10.0" 

Elasticsearch的所有依赖项都与Flink-Elastic连接器一起提供。因此我们不需要在build.sbt文件中单独包含它们。

用于Flink Elasticsearch的build.sbt文件

代码语言:javascript
复制
name := "flink-streaming-demo"

scalaVersion := "2.12.11"

val flinkVersion = "1.10.0"

libraryDependencies += "org.apache.flink" %% "flink-scala" % flinkVersion % "provided"
libraryDependencies += "org.apache.flink" %% "flink-streaming-scala" % flinkVersion % "provided"
libraryDependencies += "org.apache.flink" %% "flink-connector-elasticsearch7" % flinkVersion

有关更多详细信息,请查看我提供的here提供的Flink-Elasticsearch工作代码。

注意:从Elastic 6.x开始全面支持REST elastic client。在Elastic5.x之前,他们一直使用Transport elastic client。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60073034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档