我无法从 Amazon EMR 集群的 Hue (Hadoop User Experience) Web 界面访问我的 Amazon Simple Storage Service (Amazon S3) 表。我收到了类似这样的错误消息:“Failed to access path: 's3a://path' Check that you have access to read this bucket and that the region is correct: Bad Request”。

在您尝试访问的 S3 存储桶不在 us-east-1 区域时,通常会发生此错误。要访问 Hue Web 界面中的 S3 表,请在 S3 上创建外部 Hive 表。更新 hue.ini 文件中的 region 参数,以匹配 S3 存储桶中的区域,然后重新启动 Hue。

先决条件

CREATE EXTERNAL TABLE IF NOT EXISTS urls3(
 id STRING,
 'date' string,
 url STRING,
 expandedUrl STRING,
 domain STRING
) 
PARTITIONED BY ('year' INT, 'month' INT,
    'day' INT)
    
STORED AS PARQUET LOCATION 's3://bucket-name/new/';

检查 Hue 配置

默认情况下,Amazon EMR 将 Hue region 参数设置为 us-east-1。要访问 us-east-1 之外的其他区域中的 S3 表,请修改 hue.ini

1.    取消对 region 参数的注释。

sudo sed -i '/region/s/^##//g' /etc/hue/conf/hue.ini

2.    将 region 参数设置为您的存储桶所在的区域。在以下示例中,存储桶位于 eu-west-1

sudo sed -i '/region/s,us-east-1,eu-west-1,' /etc/hue/conf/hue.ini

重新启动 Hue

1.    运行以下命令以重新启动 Hue。

sudo stop hue ; sudo start hue

2.    关闭并重新打开 HUE Web 界面,然后尝试访问 S3 表。现在,您可以访问该表了。


此页面对您是否有帮助? |

返回 AWS Support 知识中心

需要帮助? 请访问 AWS Support 中心

发布时间:2019 年 3 月 19 日