无法从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)。蜂巢试图写信给它认为它没有权限的地方在哪里?
答
它试图做为蜂巢用户。
以下是错误&它是什么想告诉你
权限被拒绝:用户=蜂巢,访问=写,索引节点= “/” 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前
您能否显示添加了位置的完整查询? – Amar 2014-10-08 18:41:37