spark-ec2 --copy-aws-credentials无效

时间:2015-11-06 19:13:19

标签: amazon-web-services amazon-ec2 apache-spark

使用Spark 1.5,我使用spark-ec2可执行文件和--copy-aws-credentials标志启动了EC2集群。登录主节点后,未设置$AWS_ACCESS_KEY_ID$AWS_SECRET_ACCESS_KEY。它们都在启动集群的计算机上设置。尝试通过主节点上sc.textFile("s3n://...)中的spark-shell获取文件会引发错误请求凭据。

如何使用适当的AWS凭据启动群集?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。

通过查看spark-ec2安装脚本[1],我了解到密钥被复制到hdfs安装的core-site.xml文件中。您可以查看~/ephemeral-hdfs/conf/core-site.xml~/persistent-hdfs//conf/core-site.xml。 这允许您放置您配置的两个文件系统中的任何文件的文件,而无需提供AWS凭据。然后,您可以从Spark访问hdfs中的文件(即hdfs:///yourdata)。

如果你想直接从Spark访问S3,有很多选择。

  1. 将相同的配置放在~/spark/conf/core-site.xml~/mapreduce/conf/core-site.xml中。每次停止和启动集群时都必须重做这个,这很烦人。
  2. 提交Spark作业之前
  3. export AWS_ACCESS_KEY_ID=...export AWS_SECRET_ACCESS_KEY=...(例如,在提交作业的同一脚本中)
  4. 使用s3n网址(s3n://YourAccesKey:YourSecretAccessKey@yourbucket/yourdata
  5. 提供您的凭据

    [1] https://github.com/amplab/spark-ec2