无法从Spark连接到AWS Elasticsearch

sfbay

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

我找不到与Elasticsearch等效的东西。我尝试了下面的代码,但是没有用。

 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的产品。任何信息表示赞赏!

拉姆·加迪亚拉姆

awsAccessKeyId awsSecretAccessKey如果您可以通过aws访问您的spark集群,则将与spark会话一起传播。

测试是,使用Spark Shell尝试从s3中读取包含示例镶木地板文件的存储桶。

http auth用户和密码是占位符 es.net.https.auth.user es.net.https.auth.pass

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

结论:

根据我的经验,不需要单独提供awsAccessKeyId和awsSecretAccessKey,因为它的隐式访问可以从EMR群集进行。

注意:如果您想要或必须真正设置访问凭证,则需要如下设置。

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)

不喜欢

.option("es.net.https.auth.user", awsAccessKeyId)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章