【发布时间】:2017-08-17 10:53:28
【问题描述】:
我正在尝试在hive 中通过hue 在AWS EMR 上创建一个外部表
CREATE EXTERNAL TABLE IF NOT EXISTS urls (
id STRING,
`date` TIMESTAMP,
url STRING,
expandedUrl STRING,
domain STRING
)
PARTITIONED BY (`year` INT, `month` INT, `day` INT)
STORED AS PARQUET LOCATION 's3://data/processed/urls/'
- 我已经使用 AWS 控制台创建了
EMR集群 (emr-5.4.0)。 - 登录
Hue - 运行上述
SQL
在 Metastore Manager 中,我收到以下错误:
无法访问:s3://data/processed/urls/。笔记: 您是 Hue 管理员,但不是 HDFS 超级用户、“hdfs”或 HDFS 的一部分 超级组,“hadoop”。
[Errno 22] 未知方案 s3,可用方案:['hdfs']
我在文件管理器下也看不到 s3。 我可以使用 CLI 工具从主节点访问 s3。
集群创建中是否缺少任何配置选项? 我需要给 Hue 用户额外的权限吗?
更新
按照 franklinsijo 的建议,我已尝试创建一个 hdfs 用户和一个新数据库。
我现在在数据库上遇到同样的错误:
无法访问:s3://data/processed。
[Errno 22] 未知方案 s3,可用方案:['hdfs']
当从 hive CLI 运行“创建数据库”SQL 时,我得到“拒绝访问”
我正在使用EMR_DefaultRole,它同时具有AmazonElasticMapReduceRole 和AmazonS3FullAccess
更新 2
我在 franklinsijo 的帮助下解决了这个问题
- 我可以通过
hive cli和hue在s3 上创建数据库和表。 - 我可以从表中读取和写入数据
- 我不能看到
S3 Browser,详见http://gethue.com/introducing-s3-support-in-hue/ - 我无法通过“元存储管理器 -> 数据库 -> 表 -> 统计信息 -> 位置”访问该表。我仍然得到 [Errno 22]
【问题讨论】:
标签: amazon-s3 hive amazon-emr