我创建了一个AWS密钥对。
我在这里逐字逐句地遵循说明:https://aws.amazon.com/articles/4926593393724923
当我输入"aws emr create-cluster --name SparkCluster --ami-version 3.2 --instance-type m3.xlarge --instance-count 3 --ec2-attributes KeyName=MYKEY --applications Name=Hive --bootstrap-actions Path=s3://support.elasticmapreduce/spark/install-spark"
用完整路径和我的密钥对的名称替换MYKEY(我已尝试过所有内容),我收到以下错误:
`调用RunJobFlow操作时发生客户端错误(InvalidSignatureException):我们计算的请求签名与您提供的签名不匹配。检查您的AWS Secret Access Key和签名方法。有关详细信息,请参阅服务文档。
此请求的规范字符串应该是 ' POST /
内容类型:应用程序/ x-AMZ-JSON-1.1 主持人:elasticmapreduce.us-east-1.amazonaws.com user-agent:aws-cli / 1.7.5 Python / 2.7.8 Darwin / 14.1.0 X-AMZ-日期:20150210T180927Z 的x AMZ-目标:ElasticMapReduce.RunJobFlow
的内容类型;主机;用户代理; X-AMZ-日期; X-AMZ-目标 dbb58908194fa8deb722fdf65ccd713807257deac18087025cec9a5e0d73c572'
String-to-Sign应该是 ' AWS4-HMAC-SHA256 20150210T180927Z 20150210 /美东-1 / elasticmapreduce / aws4_request c83894ad3b43c0657dac2c3ab7f53d384b956087bd18a3113873fceeabc4ae26'`
我做错了什么?
答案 0 :(得分:0)
GOT IT。遗憾的是,上面的页面没有提到必须设置环境变量AWS_SECRET_ACCESS_KEY和AWS_ACCESS_KEY。你必须先这样做。我了解到你必须首先使用完全不同的设置指南:http://spark.apache.org/docs/1.2.0/ec2-scripts.html。
在我设定之后,亚马逊的指令奏效了。