我的配置单元的管理用户名为appuser。我已经创建了一个名为wuchang\u test的数据库和一个名为abtestmsg的表。是的,我描述了数据库,这个数据库的所有者名称是appuser,所有者类型是user,如下所示:
0: jdbc:hive2://hive.data.ms.netease.com:1000> describe database wuchang_test;
OK
db_name|comment|location|owner_name|owner_type|parameters
wuchang_test||hdfs://datahdfsmaster/hive/warehouse/wuchang_test.db|appuser|USER|
我已经为这个角色定义了一个名为ep\u dm的角色和一个名为bjchenweiyao的用户;另外,我已经将此表的select、delete、update、insert授予角色ep\ U dm:
database|table|partition|column|principal_name|principal_type|privilege|grant_option|grant_time|grantor
wuchang_test|abtestmsg|||appuser|USER|DELETE|true|1498113549000|appuser
wuchang_test|abtestmsg|||appuser|USER|INSERT|true|1498113549000|appuser
wuchang_test|abtestmsg|||appuser|USER|SELECT|true|1498113549000|appuser
wuchang_test|abtestmsg|||appuser|USER|UPDATE|true|1498113549000|appuser
wuchang_test|abtestmsg|||ep_dm|ROLE|DELETE|false|1498113687000|appuser
wuchang_test|abtestmsg|||ep_dm|ROLE|INSERT|false|1498113696000|appuser
wuchang_test|abtestmsg|||ep_dm|ROLE|SELECT|false|1498113704000|appuser
wuchang_test|abtestmsg|||ep_dm|ROLE|UPDATE|false|1498113712000|appuser
用户bjchenweiyao试图将一些数据插入表wuchang\u test.abtestmsg,但权限被拒绝:
Error: Error while compiling statement: FAILED: RuntimeException Cannot create staging directory 'hdfs://datahdfsmaster/hive/warehouse/wuchang_test.db/abtestmsg/dt=2017-05-01/.hive-staging_hive_2017-06-22_14-55-58_843_8091260031059700585-336': Permission denied: user=bjchenweiyao, access=WRITE, inode="/hive/warehouse/wuchang_test.db/abtestmsg/dt=2017-05-01/.hive-staging_hive_2017-06-22_14-55-58_843_8091260031059700585-336":appuser:supergroup:drwxr-xr-x
为了让用户bjchenweiyao拥有表wuchang\u test.abtestmsg的写入权限,我将数据库所有者从用户appuser改为角色ep\u dm:
alter database wuchang_test set owner ROLE ep_dm;
或者我直接将数据库所有者从用户appuser更改为用户bjchenweiyao:
alter database wuchang_test set owner USER bjchenweiyao;
这两种方法都尝试过,但权限问题仍然存在。
数据库hdfs目录权限为:
[appuser@hz-105 ~]$ hadoop fs -ls /hive/warehouse/wuchang_test.db
Found 1 items
drwxr-xr-x - appuser supergroup 0 2017-06-22 14:39 /hive/warehouse/wuchang_test.db/abtestmsg
我知道,用户bjchenweiyao没有权限写入hdfs目录/hive/warehouse/wuchang\u test.db/abtestmsg,其权限为drwxr-xr-x。
但是我该怎么做才能让bjchenweiyao得到书面许可呢?
1条答案
按热度按时间fae0ux8s1#
我不确定是否是同一个问题,但我有相同的错误信息
失败:runtimeexception无法创建临时目录'hdfs://localhost:54310/user/hive/warehouse/test\u table/.hive-staging\u hive\u 2018-09-23\u 12-51-51\u 755\u 5072249936804482657-1':权限被拒绝:user=hadoopusr,access=write,inode=“/user/hive/warehouse/test\u table”:hduser:supergroup:drwxrwxr-x
它声明它没有hdfs目录的写权限来创建临时目录
/user/hive/warehouse/test_table
所以我用:hdfs dfs -chmod 777 /user/hive/warehouse/test_table
所以试试看hdfs dfs -chmod 777 /hive/warehouse/wuchang_test.db/abtestmsg