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的配置文件中加入:

<property>
   <name>hive.users.in.admin.role</name>
   <value>hdfs</value>
</property>

(2)保存配置文件,分发到集群,重启集群。
(3)切换到hdfs,进入Hive命令行,执行:
grant all to user root;
给账号root授权全部权限
(4)再执行create database test;
终于成功了。
(5)取消全部授权
revoke all from user root;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当在Hive中尝试创建数据库时,可能会遇到各种原因导致创建失败。Hive是基于Hadoop的数据仓库工具,创建数据库失败通常涉及以下几个步骤和可能的问题: 1. **权限不足**:如果当前用户没有足够的权限执行CREATE DATABASE操作,你需要确认是否使用了具有适当角色或拥有CREATE privilege的用户。 2. **名称冲突**:如果你试图创建的数据库名字已经存在,Hive会拒绝创建。请检查目标数据库名是否已存在,并选择其他唯一的名字。 3. **语法错误**:检查你的SQL语句是否有语法错误,例如忘记指定数据库模式(如`CREATE DATABASE db_name LOCATION '/path/to/directory'`)。 4. **资源限制**:Hive可能因为系统资源(如磁盘空间、内存)不足而无法创建数据库。确保有足够的可用资源。 5. **环境配置问题**:确保Hadoop配置文件(如hdfs-site.xml)正确配置,Hive可以访问存储数据的HDFS。 6. **元存储问题**:Hive Metastore服务(通常是基于内存的)可能没有启动或存在问题,影响到数据库的创建。 7. **日志错误**:查看Hive的日志文件(如hiveserver2.log)中可能包含关于创建失败的具体错误信息。 为了解决这个问题,你可以按照以下步骤排查: - 检查错误消息:日志文件或Hive的返回信息通常会提供线索。 - 使用Hive CLI工具,尝试以更详细的模式运行创建命令并观察输出。 - 使用`DESCRIBE DATABASES`命令确认数据库是否存在或是否有其他错误提示。 - 如果是权限问题,使用正确的用户或者授予相应的权限

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值