在 Amazon EMR 中使用 Hue S3 文件浏览器时,为什么我无法访问我的 S3 存储桶?

1 分钟阅读
0

我正在使用 Hue (Hadoop User Experience) 访问 Amazon EMR 集群上的 Amazon Simple Storage Service (Amazon S3) 存储桶。我收到了下面的一条错误消息:

没有文件与搜索条件匹配。 无法访问路径 "s3a://awsdoc-example-bucket.hue1":主机名 u'awsdoc-example-bucket.hue1.s3.amazonaws.com' 与 '.s3.amazonaws.com'、's3.amazonaws.com' 都不匹配 无法检索存储桶:主机名 u'awsdoc-example-bucket.hue1.s3.amazonaws.com' 与 '.s3.amazonaws.com'、's3.amazonaws.com' 都不匹配

简短描述

Hue 默认的 Amazon S3 调用格式为 https://awsdoc-example-bucket.s3.amazonaws.com。如果 S3 存储桶名称包含点 (.),则部分存储桶名称会包含在 Amazon S3 终端节点中。例如,如果存储桶的名称为 awsdoc-example-bucket.hue,那么 Hue 会将 hue.s3.amazonaws.com 而不是 s3.amazonaws.com 视为 Amazon S3 终端节点。

解决方法

要解决此错误,请将终端节点格式更改为 https://s3.amazonaws.com/awsdoc-example-bucket。在使用此格式时,您可以在存储桶名称中使用任意数量的点号。

1.    打开 /etc/boto.cfg 文件。

2.    将以下行添加到 boto.cfg 文件:

[s3]
calling_format=boto.s3.connection.OrdinaryCallingFormat

3.    重新启动 Hue 服务:

对于 5.30 以前的 Amazon EMR 版本:

$ sudo stop hue
$ sudo start hue

对于 Amazon EMR 版本 5.30 及更高版本:

$ sudo systemctl restart hue

相关信息

Boto3 配置

Hue

AWS 官方
AWS 官方已更新 2 年前