【发布时间】:2014-10-08 18:29:09
【问题描述】:
我可以使用以下语法在 avro 文件顶部创建一个表,而不会出现任何错误。这是一张空桌子。
CREATE EXTERNAL TABLE tableName
PARTITIONED BY (ingestiondatetime BIGINT, recordtype STRING)
ROW FORMAT SERDE
'org.apache.hadoop.hive.serd2.avro.AvroSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
TABLEPROPERTIES ('avro.schema.url'='hdfs:///user/file.avsc');
当我添加 LOCATION 行以指向实际的 avro 文件位置时,出现权限错误
CREATE EXTERNAL TABLE tableName
PARTITIONED BY (ingestiondatetime BIGINT, recordtype STRING)
ROW FORMAT SERDE
'org.apache.hadoop.hive.serd2.avro.AvroSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
LOCATION '/local/avro_dir/'
TABLEPROPERTIES ('avro.schema.url'='hdfs:///user/file.avsc');
错误是
> FAILED: Error in metadata.....
> org.apache.hadoop.security.AccessControlException: Permission denied:
> user=hive, access=WRITE, inode="/" hdfs:supergroup:drwxr-xr-x
我和我一样运行 hive。我对 hdfs:/ 的权限是完全开放的 (777)。 hive 在哪里尝试写入它认为它没有权限的内容?
【问题讨论】:
-
你能显示完整的查询并添加位置吗?
标签: hive create-table avro