我想把pre上的数据复制到s3上。
我试着用下面的命令。
hadoop fs -Dfs.s3a.access.key=*******-Dfs.s3a.secret.key=*******-cp -f hdfs://on-pre/cluster/mydata/dt=20200601/ s3a://some-bucket/somewhere/
运行此命令时,出现以下错误(路径都是假的):
cp: s3a://some-bucket/somewhere/dt=20200601/000000_0.gz: getFileStatus on s3a://some-bucket/somewhere/dt=20200601/000000_0.gz: com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; Request ID: xxxxxxxxxxxxx), S3 Extended Request ID: xxxxxxxxxxxxxxxxxxxxxxx
我制定了以下政策。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::9999999999:user/john"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::some-bucket/somewhere/*"
},
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::9999999999:user/john"
},
"Action": "s3:List*",
"Resource": "arn:aws:s3:::some-bucket",
"Condition": {
"StringLike": {
"s3:prefix": [
"somewhere/*"
]
}
}
}
]
}
我应该使用什么s3策略 hadoop fs cp
?
1条答案
按热度按时间gkl3eglg1#
子目录本身需要一个listbucket
必要的权限可能会更改,如注解中所述。
不过,这里的代码,解决了你的参考
注意,这个iam声明在2020年6月5日使用hadoop3.2.1或更早版本。未来的hadoop版本可能会更改规则,因为它们或aws会分别更改连接器或s3的功能。