首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法从Spark连接到AWS Elasticsearch

无法从Spark连接到AWS Elasticsearch
EN

Stack Overflow用户
提问于 2019-06-26 04:32:38
回答 1查看 1.4K关注 0票数 3

我需要使用AWS访问/密钥从我的Spark应用程序(结构化流)连接到AWS Elasticsearch服务。例如,S3和Spark集成有一种在configuration https://docs.databricks.com/spark/latest/data-sources/aws/amazon-s3.html中设置访问/密钥的方法

我找不到任何与Elasticsearch相同的东西。我尝试了下面的代码,但它不起作用。

代码语言:javascript
复制
 val writer = input.write
        .option("es.nodes",serverUrl)
        .option("es.net.https.auth.user", awsAccessKeyId)
        .option("es.net.https.auth.pass", awsSecretAccessKey)
        .option("es.nodes.wan.only", "true")
        .format("org.elasticsearch.spark.sql")
  writer.save("index/mapping")

看起来"es.net.https.auth.xxx“是用于基本身份验证的。我正在寻找AWS特定的一个。如有任何信息,欢迎光临!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-26 05:00:28

与您的spark会话一起,如果您拥有对您的spark集群的awsAccessKeyId访问权限,将会传播awsSecretAccessKey

测试是,使用spark shell尝试从包含示例拼图文件的s3中读取存储桶。

http身份验证用户和密码是es.net.https.auth.user es.net.https.auth.pass的占位符

例如,如果您连接到mysql ( RDS是aws ),则需要分别传递jdbc用户名和密码。类似的术语你的http认证也是这样的。

结论:

根据我的经验,没有必要单独提供awsAccessKeyId awsSecretAccessKey,因为它隐含着您可以从EMR集群访问它。

注意:如果你想或者必须真的设置访问凭证,你需要像下面这样设置...

代码语言:javascript
复制
val hadoopConf = sc.hadoopConfiguration;
hadoopConf.set("fs.s3.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem")
hadoopConf.set("fs.s3.awsAccessKeyId", myAccessKey)
hadoopConf.set("fs.s3.awsSecretAccessKey", mySecretKey)

不像

代码语言:javascript
复制
.option("es.net.https.auth.user", awsAccessKeyId)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56761624

复制
相关文章

相似问题

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