Ranger集成CDH Hive

安装
HIVE插件只对使用JDBC方式访问HIVE的请求进行权限管理,HIVE-CLI不受限制!
解压文件ranger-2.1.0-hive-plugin.tar.gz并修改install.properties文件

#ranger admin的路径
POLICY_MGR_URL=http://cdh04:6080
#hive服务名称
REPOSITORY_NAME=hivedev
#hive的安装路径
COMPONENT_INSTALL_DIR_NAME=/opt/cloudera/parcels/CDH/lib/hive
#使用solr作为审计
XAAUDIT.SOLR.ENABLE=true
XAAUDIT.SOLR.URL=http://cdh04:6083/solr/ranger_audits
XAAUDIT.SOLR.USER=NONE
XAAUDIT.SOLR.PASSWORD=NONE
XAAUDIT.SOLR.ZOOKEEPER=NONE
XAAUDIT.SOLR.FILE_SPOOL_DIR=/var/log/hive/audit/solr/spool

启动ranger hive插件

[root@ip-10-3-29-166 ranger-2.1.0-hive-plugin]# pwd
/opt/apps/my-ranger/ranger-2.1.0-hive-plugin
[root@ip-10-3-29-166 ranger-2.1.0-hive-plugin]# ./enable-hive-plugin.sh

在/opt/cloudera/parcels/CDH/lib/hive/conf目录下生成五个文件
在这里插入图片描述

在/opt/cloudera/parcels/CDH/lib/hive/lib目录下生成两个JAR文件软连接和一个目录软连接
在这里插入图片描述

重启hive后,再hiveserver2日志文件中会报错如下:
在这里插入图片描述

解决办法如下:
在ranger hive的配置文件目录新建xasecure-audit.xml文件

[root@ip-10-3-29-166 enable]# pwd
/opt/apps/my-ranger/ranger-2.1.0-hive-plugin/install/conf.templates/enable  
[root@ip-10-3-29-166 enable]# vim xasecure-audit.xml
<!-- MYSQL的连接地址及用户名端口号,配置同RANGER ADMIN中INSTALL.PROPERTIES的MYSQL配置相同-->
<property>
  <name>xasecure.audit.jpa.javax.persistence.jdbc.url</name>
  <value>jdbc:mysql://cdh02:3306/ranger</value>
</property>
<property>
  <name>xasecure.audit.jpa.javax.persistence.jdbc.user</name>
  <value>ranger</value>
</property>
<property>
  <name>xasecure.audit.jpa.javax.persistence.jdbc.password</name>
  <value>Ranger2.1</value>
</property>

重启hive服务,其实是重启hiverserver2,此时日志文件中报错消失,并且在hive的策略缓存目录中生成文件

[root@ip-10-3-29-166 conf]# ll /etc/ranger/hivedev/policycache/
total 24
-rw-r--r-- 1 hive hive 17745 Apr 23 09:29 hiveServer2_hivedev.json
-rw-r--r-- 1 hive hive   105 Apr 23 09:29 hiveServer2_hivedev_roles.json

web界面也有插件显示
在这里插入图片描述

添加hive相关服务
在这里插入图片描述

添加详情如下:
在这里插入图片描述

利用beeline -u jdbc:hive2://cdh01:10000登录,HIVE-CLI是不受限制的
此时会出现以下异常:

WARN jdbc.HiveConnection: Failed to connect to S0:10000
Error: Could not open client transport with JDBC Uri: jdbc:hive2://S0:10000: Failed to open new session: java.lang.IllegalArgumentException: 
Cannot modify hive.query.redaction.rules at runtime. 
It is not in list of params that are allowed to be modified at runtime (state=08S01,code=0)

解决方案
修改/opt/cloudera/parcels/CDH/lib/hive/conf/目录下的hive环境变量文件hive-env.sh,注释export HIVE_OPTS配置
在这里插入图片描述

现在直接使用hive命令也可以无验证登录,为避免这种状况,我们需要在hive-site.xml中添加如下参数,只允许beeline用户的方式访问,达到权限验证效果,由于使用CDH,所以在web界面添加:

<property>
        <name>hive.security.authenticator.manager</name>
       <value>
         org.apache.hadoop.hive.ql.security.SessionStateUserAuthenticator
       </value>     	
</property>
 <property>
        <name>hive.security.authorization.manager</name>
        <value>
   org.apache.ranger.authorization.hive.authorizer.RangerHiveAuthorizerFactory
     </value>
</property>
<property>
        <name>hive.security.authorization.enabled</name>
        <value>true</value>
 </property>
 <property>
        <name>hive.conf.restricted.list</name>
       <value>
hive.security.authorization.enabled,hive.security.authorization.manager,hive.security.authenticator.manager
       </value>
</property>
   <property>
        <name>hive.server2.map.fair.scheduler.queue</name>
        <value>false</value>
    </property>

重启hive使配置生效。
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值