Hive权限管理

Hive权限管理以及连通数据库(MySql)

hive的权限问题

初次使用hive输入类似show databases;出现无权访问的报错
org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
根据实际情况,最初只有root用户具有再服务器上操作/var/lib/hive/metastore文件夹的权限因此普通用户无法进行操作,需要登录root用户或者其他有权限的用户建立数据库后分配对应权限
开启权限管理
1.在hive-site.xml文件中配置参数开启权限认证,开启启身份认证后,任何用户必须被grant privilege才能对实体进行操作:
hive.security.authorization.enabled = true
2.表示创建表时自动赋予一些用户或角色相应的权限:
hive.security.authorization.createtable.owner.grants = ALL
hive.security.authorization.createtable.role.grants = admin_role:ALL
hive.security.authorization.createtable.user.grants = user1,user2:select;user3:create
3.假如出现以下错误: Error while compiling statement: FAILED: SemanticException The current builtin authorization in Hive is incomplete and disabled. 需要配置下面的属性:
hive.security.authorization.task.factory = org.apache.hadoop.hive.ql.parse.authorization.HiveAuthorizationTaskFactoryImpl
4.属性赋值采用xml,格式如下:
<property> 
    <name>key</name> 
    <value>value</value> 
</property> 
5.成功后需要将/var/lib/hive/metastore/metastore_db目录下部分文件的写权限开启,否则普通用户无法对root用户创建的文件进行操作
至少需要开启其中tmp/ db.lck 的写权限 如果失败,通过日志查看还需要什么文件的权限,开启后继续尝试
chmod -R o+w ...
chmod -R 777 ... (注意虽然成功率很高但谨慎使用)

成功后不要再使用root账户对hive进行操作,这会导致db.lck文件和tmp文件夹被root重写,权限会被更改导致普通用户无法访问

连接数据库

若出现如下报错(截取了一部分)

ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.RuntimeException: Could not load db driver class: com.mysql.jdbc.Driver
java.lang.RuntimeException: Could not load db driver class: com.mysql.jdbc.Driver
成功建表之后,使用shell连接mysql导入数据时可能遇到缺少驱动包的问题,只需将mysql-connector-java-5.xx.x.jar 复制到sqoop安装目录的lib目录中即可!

如果导入还依然报如下错误,请尝试导入不同的版本的包

Reference

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值