如何解决无法从 AWS GLUE 连接到 AWS Elastic Search
我希望从 AWS glue 连接到弹性搜索。我遵循了这个stack overflow post,正如帖子中提到的,我们在 s3 存储桶中添加了 jar 文件,并在创建作业时引用了 JAR 路径。当我们尝试将数据摄取到弹性时,胶水抛出以下错误。
Elastic 版本是 7.1.1,我们引用的 jar 文件也是同一版本 elasticsearch-hadoop-7.1.1.jar
**
调用 o116.save 时出错。无法检测 ES 版本 - 如果网络/Elasticsearch 集群不是,通常会发生这种情况 可访问或在没有适当的情况下针对 WAN/云实例 设置 'es.nodes.wan.only' 调用 o116.save 时发生错误。 无法检测 ES 版本 - 通常情况下,如果 网络/Elasticsearch 集群不可访问或定位到 WAN/云实例没有正确设置'es.nodes.wan.only'**
这是我们使用的代码,这里是否缺少任何设置。
df.write.format("org.elasticsearch.spark.sql").\
option("es.nodes","endpoint").\
option("es.port",443).\
option("es.resource","test/_doc").\
option("es.nodes.wan.only",True).\
option("es.net.ssl.cert.allow.self.signed","true").\
option("es.net.ssl","true").\
option("es.mapping.id","id").\
save()
解决方法
要从 AWS Glue 连接到 Elasticsearch,您需要一个“NETWORK”类型的 AWS Glue Connection。在 Terraform 中,可以使用 aws_glue_connection 添加它。连接的名称 - 而不是 ID - 必须添加到来自 aws_glue 的“连接”列表中。
resource "aws_glue_connection" "elasticsearch" {
name = "glue_connection_to_elasticsearch"
connection_type = "NETWORK"
...
end
resource "aws_glue_job" "your_glue_job_name" {
...
connections = [aws_glue_connection.elasticsearch.name]
...
end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。