使用 Spark 1.5,我使用 spark-ec2
可执行文件和 --copy-aws-credentials
标志启动了一个 EC2 集群。登录到主节点后,$AWS_ACCESS_KEY_ID
和 $AWS_SECRET_ACCESS_KEY
未设置。它们都设置在启动集群的机器上。尝试通过主节点上 spark-shell
中的 sc.textFile("s3n://...)
获取文件会引发错误,要求提供凭据。
如何使用适当的 AWS 凭证启动集群?
最佳答案
我遇到了这个完全相同的问题。
通过查看 spark-ec2 安装脚本 [1],我了解到 key 被复制到两个 hdfs 安装的 core-site.xml
文件中。你可以查看~/ephemeral-hdfs/conf/core-site.xml
和~/persistent-hdfs//conf/core-site.xml
。
这允许您将文件放入您配置的两个文件系统中的任何一个,而无需提供 AWS 凭证。然后,您可以从 Spark 访问 hdfs 中的文件(即 hdfs:///yourdata
)。
如果您想直接从 Spark 访问 S3,有多种选择。
~/spark/conf/core-site.xml
和 ~/mapreduce/conf/core-site.xml
。每次停止和启动集群时都必须重做,这很烦人。export AWS_ACCESS_KEY_ID=...
和 export AWS_SECRET_ACCESS_KEY=...
在您提交 Spark 作业之前(例如,在提交作业的同一脚本中)s3n
url (s3n://YourAccesKey:YourSecretAccessKey@yourbucket/yourdata
) 提供您的凭据[1] https://github.com/amplab/spark-ec2
关于amazon-web-services - spark-ec2 --copy-aws-credentials 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33574008/
相关文章:
email - 更改 TFS 2015 电子邮件警报中的主题
python - 以 CSR/COO 格式为存储在 Pandas DataFrame 中的分类数据的
amazon-web-services - AWS CLI 工具 - 无法从 S3 递归下载
python - NumPy 或 SciPy 计算加权中位数
android - 呈现问题 :Binary XML file line #-1: No start
java - maven-shade-plugin 中的 list 不起作用
Python - sys.stderr 未保存到 .txt 或 .log