我正在尝试使用以下命令将NCDC数据从Amazon S3复制到我的本地hadoop群集。
hadoop distcp -Dfs.s3n.awsAccessKeyId='ABC' -Dfs.s3n.awsSecretAccessKey='XYZ' s3n://hadoopbook/ncdc/all input/ncdc/all
得到以下错误:
java.lang.IllegalArgumentException: AWS Secret Access Key must be specified as the password of a s3n URL, or by setting the fs.s3n.awsSecretAccessKey property
通过以下问题但没有大的帮助。
Problem with Copying Local Data
有关如何解决问题的任何提示。为了更好地理解,将非常感谢详细的答案。感谢
答案 0 :(得分:1)
你试过这个:
这是一个复制名为0070206153839-1998的nutch段的示例 / user / nutch在hdfs中一个名为'nutch'的S3存储桶(让S3 AWS_ACCESS_KEY_ID为123,S3 AWS_ACCESS_KEY_SECRET为456):
%$ {HADOOP_HOME} / bin / hadoop distcp HDFS://的domU-12-31-33-00-02-DF:9001 /用户/的nutch / 0070206153839-1998 S3:// 123:456 @的nutch /
在你的情况下,它应该是这样的:
hadoop distcp s3n://ABC:XYZ@hadoopbook/ncdc/all hdfs://IPaddress:port/input/ncdc/all
答案 1 :(得分:0)
您需要在core-site.xml中设置aws id和密码
<property>
<name>fs.s3n.awsAccessKeyId</name>
<value>xxxxxxx</value>
</property>
<property>
<name>fs.s3n.awsSecretAccessKey</name>
<value>xxxxxxxxx</value>
</property>
并重新启动群集