如何在 spark-shell 中设置 aws 访问密钥和 aws 密钥

Posted

技术标签:

【中文标题】如何在 spark-shell 中设置 aws 访问密钥和 aws 密钥【英文标题】:How to set aws access key and aws secret key inside spark-shell 【发布时间】:2015-09-08 22:06:54 【问题描述】:

您能否告诉我在 spark-shell 中设置 aws 访问密钥和 aws 密钥的最佳方法。我尝试使用

设置它
sc.hadoopConfiguration.set("fs.s3n.awsAccessKeyId", MY_ACCESS_KEY)
sc.hadoopConfiguration.set("fs.s3n.awsSecretAccessKey", MY_SECRET_KEY)

得到了

java.lang.IllegalArgumentException:AWS 访问密钥 ID 和秘密访问密钥必须分别指定为 s3n URL 的用户名或密码,或者通过设置 fs.s3n.awsAccessKeyId 或 fs.s3n.awsSecretAccessKey 属性 (分别)

我可以通过将它作为 url 的一部分传递来让它工作

s3n://MY_ACCESS_KEY:MY_SECRET_KEY@BUCKET_NAME/KEYNAME

在用 %2F 替换我的密钥中的斜杠后,但想知道是否有替代方法可以将我的访问密钥和密钥嵌入 url。

【问题讨论】:

【参考方案1】:

除了霍顿的回答,这里有一个更具体的例子:

val jobConf = new JobConf(sparkContext.hadoopConfiguration)
    jobConf.set("fs.s3n.awsAccessKeyId", MY_ACCESS_KEY)
    jobConf.set("fs.s3n.awsSecretAccessKey", MY_SECRET_KEY)

val rdd = sparkContext.hadoopFile(jobConf, ...)

【讨论】:

【参考方案2】:

您可以使用hadoopRDD 函数并使用所需属性直接指定JobConf 对象。

【讨论】:

以上是关于如何在 spark-shell 中设置 aws 访问密钥和 aws 密钥的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 aws cloudformation 模板在 aws cognito 用户池中设置所需属性?

如何在 AWS 放大 DynamoDB 架构中设置嵌套字段的限制?

如何使用 S3 在 aws 中设置静态站点 - 是不是有视觉指南?

如何在 Istio 中设置 AWS ALB 而不是 ELB?

如何使用 AWS 在 Docker Cloud 中设置链接到 S3 的卷?

如何在 AWS S3 网站 CloudFront 中设置别名重定向?