如何在 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?