Hive 开启权限后不能创建数据库问题
背景:由于 Hive 需要开启权限管理,安装网上教程,开启权限配置,重启集群
后。
使用 root 用户登录,进入 Hive 命令行界面。
执行
create database test;
发现报错:
Authorization failed:No privilege 'Create' found for outputs { }. Use SHOW GRANT
to get more details
问题排查过程:
1、在一个已经存在数据库下,比如 dm,给用户 root,授全部权限:
grant all on database dm to user root;
然后执行创建表语句,是成功的。
2、经过不断尝试和查找资料,大概知道是需要一个 Hive 的超级管理员用户才行,
就创建一个用户 admin,使用 admin 登录,进入 Hive,执行创建数据库语句,还
是报同样的错误。
3、最后经过努力,终于找到解决问题的办法。
(1)vi /etc/Hive/conf.cloudera.hive/hive-site.xml,在 Hive 的配置文件中加入:
hive.users.in.admin.role
hdfs
(2)保存配置文件,分发到集群,重启集群。
(3)切换到 hdfs,进入 Hive 命令行,执行:
grant all to user root;
给账号 root 授权全部权限
(4)再执行 create database test;
终于成功了。
(5)取消全部授权
revoke all from user root;