我可以访问hadoop集群,在那里我可以以只读方式访问数据所在的hdfs文件夹(在本例中为/data/table1/data\u part0)。我想建立一个配置单元外部表,这将提供我更容易的方式来查询数据。
因此,我创建了一个表,如下所示:
CREATE EXTERNAL TABLE myDB.Table1 (column1 STRING, column2 STRING, column3 STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "(.{10})(.{16})(.{10})"
)
LOCATION '/data/table1';
但是,它给了我一个错误:
错误:编译语句时出错:失败:hiveaccesscontrolexception权限被拒绝:用户[my\u user]在上没有[all]权限[hdfs://hadoopcluster/data/table1](州=42000,代码=40000)
我明白,我没有写任何东西的权利,但是我如何才能做到这一点,以便表被显式定义为只读?
编辑:我知道我可以设置为创建临时外部表。。。但我想有一个更持久的解决方案。此外,我也没有权限将文件夹/data/table1设置为模式777。有没有办法告诉hive,这个表只是用来查询的,不会添加更多的数据(至少不会通过hive)。
编辑:进一步说,我已经看到吉拉门票自2009年以来设置为重要,但仍然没有解决。
暂无答案!
目前还没有任何答案,快来回答吧!