繁体   English   中英

从hadoop访问Amazon S3存储桶,从命令行指定SecretAccessKey

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM