无法从avro文件创建配置单元表

问题描述:

我可以使用以下语法在无avro文件上创建表,而不会出现任何错误。这是冷杉的一张空桌子。无法从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'); 

当我添加定位线指向实际的Avro文件loctaion,我得到一个权限错误

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)。蜂巢试图写信给它认为它没有权限的地方在哪里?

+0

您能否显示添加了位置的完整查询? – Amar 2014-10-08 18:41:37

它试图做为蜂巢用户。

以下是错误&它是什么想告诉你

权限被拒绝:用户=蜂巢,访问=写,索引节点= “/” HDFS:超群的。drwxr-XR-X

异常告诉你: 这是谁做的:用户=蜂巢 用户正在试图做的:访问=写 被访问了什么可怕的:的inode =“/” 的位置的权限: HDFS:超组的。drwxr-XR-X

运行的hadoop FS -ls -la/

你描述(777)的权限没有反映在错误信息中。在错误消息中的权限表明每个人都已读&执行,但不能写入。

正如阿马尔所说,看到完整的命令将有所帮助!

如果这是我,那是因为我在该位置有一个拼写错误,并且配置单元试图创建该目录。

如果您运行 hadoop fs -ls [your LOCATION property ] ..位置是否存在?

祝你好运!

布赖恩

TABLEPROPERTIES应TBLPROPERTIES

同样对于使用API​​,则对于 “;”至少在我的Spark和Hive版本中是不允许的,但是你知道这个变化有多快。

您的当前用户配置单元,其不具有的inode写入权限=“/”

从命令提示符启动蜂巢 尝试写

出口HADOOP_USER_NAME = HDFS

改变乌尔当前用户HDFS前