我将输入和输出文件夹作为参数传递给来自网页的mapreduce字数统计程序.
得到以下错误:
HTTP状态500 - 请求处理失败; 嵌套异常是java.lang.IllegalArgumentException:必须将AWS Access Key ID和Secret Access Key指定为s3n URL的用户名或密码,或者通过设置fs.s3n.awsAccessKeyId或fs.s3n.awsSecretAccessKey属性(分别).
RickH.. 39
该文档的格式为:http://wiki.apache.org/hadoop/AmazonS3
s3n://ID:SECRET@BUCKET/Path
不幸的是,如果秘密中有一个"/",这就不起作用了.这很常见.这是一个古老的已知错误https://issues.apache.org/jira/browse/HADOOP-3733,并且可以在hadoop 2.8中修复s3a协议.https://issues.apache.org/jira/browse/HADOOP-11573.另一种方法是将密钥放入conf中(但这也有其他注意事项) (12认同)
它适用于emr-4.3.0.EMR-4.4.0和EMR-4,5,0抛`java.lang.IllegalArgumentException异常:斗名称不能被格式化为IP Address`,仿佛ID和秘密是斗名称的一部分.Emr-4.6.0抛出`java.lang.IllegalArgumentException:Bucket名称应该在3到63个字符之间.有任何想法吗? (2认同)
小智.. 9
我建议你用这个:
hadoop distcp \ -Dfs.s3n.awsAccessKeyId=\ -Dfs.s3n.awsSecretAccessKey= \ s3n://origin hdfs://destinations
它还可以作为键中斜杠出现的变通方法.必须按以下顺序提供具有id和访问密钥的参数:在disctcp之后和origin之前
我建议你用这个:
hadoop distcp \ -Dfs.s3n.awsAccessKeyId=<your_access_id> \ -Dfs.s3n.awsSecretAccessKey=<your_access_key> \ s3n://origin hdfs://destinations
它还可以作为键中斜杠出现的变通方法.必须按以下顺序提供具有id和访问密钥的参数:在disctcp之后和origin之前
该文档的格式为:http://wiki.apache.org/hadoop/AmazonS3
s3n://ID:SECRET@BUCKET/Path
作为Amazon s3n网址的一部分传递AWS凭证通常不建议使用,安全性明智.特别是如果将该代码推送到保存服务的存储库(如github).理想情况下,将您的凭据设置在conf/core-site.xml中:
<configuration> <property> <name>fs.s3n.awsAccessKeyId</name> <value>XXXXXX</value> </property> <property> <name>fs.s3n.awsSecretAccessKey</name> <value>XXXXXX</value> </property> </configuration>
或者在您的机器上重新安装awscli.
pip install awscli