在插入由HCTA创建的表时拒绝权限

wswtfjt7  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(381)

我在hadoop中使用teradata的hctas过程创建表时遇到了问题。
我打电话给HCTA创建表格,

CALL SYSLIB.HCTAS('test_table',null,null,'myserver','default');

***Procedure has been executed.

但是,当我尝试向该表中插入数据时,权限被拒绝。

INSERT INTO test_table@myserver SELECT * FROM test_table;

***Failure 7810 [TblOp] Permission denied: user=myuser, access=WRITE, inod

 e="/apps/hive/warehouse/test_table":hive:hdfs:drwxr-xr-x
    at org.apache.hadoo
 p.hdfs.server.namenode.FSPermissionChecker.checkFsPermission(FSPermissionChec
 ker.java:265)
    at org.apache.hadoop.hdfs.s.
            Statement# 1, Info =0

我检查了hadoop,发现目录的所有者是“hive”而不是“myuser”。

drwxr-xr-x   - hive hdfs          0 2015-08-05 21:45 /apps/hive/warehouse/test_table

我应该怎么做才能创建目录,并将“myuser”作为所有者?
谢谢

1qczuiv0

1qczuiv01#

第三个参数用于指定目录,请重试

CALL SYSLIB.HCTAS('test_table',null,'LOCATION "/usr/myuser"','myserver','default');
fsi0uk1n

fsi0uk1n2#

如您所见,这是一个写入权限问题,因为myuser没有在/hive/warehouse/中写入的权限。
另一方面,正如您在这里看到的,您可以指定表的位置,您可以确定myuser具有写权限(可能是hdfs中的个人文件夹)。这样您就不会有写权限问题。

相关问题