[英]access amazon S3 bucket from hadoop specifying SecretAccessKey from command line
我正在尝试使用hdfs命令访问Amazon S3存储桶。 这是我运行的命令:
$ hadoop fs -ls s3n://<ACCESSKEYID>:<SecretAccessKey>@<bucket-name>/tpt_files/
-ls: Invalid hostname in URI s3n://<ACCESSKEYID>:<SecretAccessKey>@<bucket-name>/tpt_files
Usage: hadoop fs [generic options] -ls [-d] [-h] [-R] [<path> ...]
我的SecretAccessKey
包含“ /”。 可能是这种行为的原因吗?
同时在此服务器上安装了aws cli,并且可以使用aws cli访问我的存储桶而没有任何问题(在.aws / credentials中配置的AccessKeyId和SecretAccessKey):
aws s3 ls s3:// <bucket-name>/tpt_files/
是否有任何方法可以在不指定core-site.xml中的密钥的情况下使用Hadoop命令访问Amazon S3存储桶? 我希望在命令行中指定键。
任何建议将非常有帮助。
最佳实践是在使用EC2实例配置文件角色创建的实例上运行hadoop,并将S3访问指定为已分配角色的策略。 使用实例配置文件时,不再需要密钥。
http://docs.aws.amazon.com/java-sdk/latest/developer-guide/credentials.html
您也可以使用实例配置文件角色启动AMI,CLI和SDK将使用它。 如果您的代码使用DefaultAWSCredentialsProviderChain类,则可以通过环境变量,系统属性或凭据配置文件(以及EC2实例配置文件角色)获取凭据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.