我正在使用 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