Я могу создать таблицу поверх файла 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
Я управляю ульем, как и я. Мои разрешения на hdfs: / широко открыты (777). Где улей пытается написать, что думает, что у него нет разрешения?