hbase 整合ranger
一、安装hbase插件
1、解压安装插件
从target目录下拷贝ranger-2.1.0-SNAPSHOT-hbase-plugin.tar.gz到hbase集群,你的这个包的版本可能跟我不一致。
在hbase集群解压hbase插件包
# tar zxvf ranger-2.1.0-SNAPSHOT-hbase-plugin.tar.gz -C /data1/hadoop
2、配置install.properties文件
修改如下配置:
POLICY_MGR_URL=http://192.168.4.50:6080
REPOSITORY_NAME=hivedev
COMPONENT_INSTALL_DIR_NAME=/data1/hadoop/hbase #hbase安装目录
XAAUDIT.SOLR.ENABLE=true
XAAUDIT.SOLR.URL=http://192.168.4.50:6083/solr/ranger_audits
CUSTOM_USER=hduser
CUSTOM_GROUP=hduser
3、启动插件(需root权限)
#sudo /data1/hadoop/ranger-2.1.0-hbase-plugin/enable-hbase-plugin.sh
启动插件以后,在hbase-site.xml文件的最后默认会添加如下配置:
<property>
<name>hbase.security.authorization</name>
<value>true</value>
</property>
<property>
<name>hbase.coprocessor.master.classes</name>
<value>org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor</value>
</property>
<property>
<name>hbase.coprocessor.region.classes</name>
<value>org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor</value>
</property>
4、启动hbase
# start-hbase.sh
5、前台配置
(1) 添加服务


点击+号按钮,添加服务,服务名需要与install.properties文件里面配置REPOSITORY_NAME属性值的一致
服务添加完成以后,默认的hduser用户拥有全部权限。
6、测试
(1) 使用hduser操作
使用hduser用户,进入到hase客户端,创建数据库,表,插入数据
hbase(main):015:0> create 'test','f1'
hbase(main):016:0> list
TABLE
test
1 row(s)
Took 0.0123 seconds
=> ["test"]
hbase(main):017:0> put 'test','r1','f1:c1','yjt'
hbase(main):018:0> get 'test','r1'
COLUMN CELL
f1:c1 timestamp=1573457130189, value=yjt
1 row(s)
Took 0.0700 seconds
(2) 使用yjl用户,测试是否拥有权限

说明当前的这个用户是拥有权限的。
前台配置策略,限制yjl这个用户对test表的读取权限

右上角点击添加策略

添加deny 权限

(3) 测试yjl用户是否有读取权限

从上可以看出来,权限被拒绝。
(4) 测试write权限

写数据到test表,写入拒绝。
在刚才的策略中为yjl这个用户添加write权限,如下:

保存,客户端测试yjl这个用户是否有写入权限:

说明配置成功。
这里有三点需要注意:
- 版本是否匹配?
ranger2.x里面使用的hbase版本是2.0.2,所以一开始我在使用hbase1.3.x或者1.4.x的时候,在启动hbase时,报找不到类错误,如下:
2019-11-11 13:50:11,621 FATAL [yjt:16000.activeMasterManager] master.HMaster: The coprocessor org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor threw java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/coprocessor/RegionCoprocessor
java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/coprocessor/RegionCoprocessor
解决办法就是更换hbase版本,换到2.x,或者降低ranger版本
- Hbase2.x版本的问题
在更换2.x版本以后,在启动hbase的时候,继续报错,报错如下:
2019-11-11 14:53:57,504 ERROR [Thread-14] master.HMaster: ***** ABORTING master yjt,16000,1573455225686: Unhandled exception. Starting shutdown. *****
java.lang.IllegalStateException: The procedure WAL relies on the ability to hsync for proper operation during component failures, but the underlying filesystem does not support doing so. Please check the config value of 'hbase.procedure.store.wal.use.hsync' to set the desired level of robustness and ensure the config value of 'hbase.wal.dir' points to a FileSystem mount that can provide it.
解决办法:
在hbase-site.xml配置文件添加如下配置:
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
- Ranger-admin版本与hbase或者其他插件版本不一致可能导致问题。
Ranger-admib我使用的版本是2.1.0,而我在测试hbase的时候,hbase ranger插件我使用的是2.0.0,在启动hbase的时候,包如下错误:
2019-11-11 14:31:28,206 WARN [PEWorker-15] procedure.CreateTableProcedure: Retriable error trying to create table=hbase:namespace state=CREATE_TABLE_ADD_TO_META
org.apache.hadoop.hbase.security.AccessDeniedException: org.apache.hadoop.hbase.security.AccessDeniedException: Insufficient permissions for user ‘hduser',action: put, tableName:hbase:meta, family:info, column: state
at org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor.requirePermission(RangerAuthorizationCoprocessor.java:589)
这样会导致权限控制失败,所以ranger-admin与各插件直接需要版本一致,不要给自己找太多麻烦。
hbase 整合ranger的更多相关文章
- Hive(五):hive与hbase整合
配置 hive 与 hbase 整合的目的是利用 HQL 语法实现对 hbase 数据库的增删改查操作,基本原理就是利用两者本身对外的API接口互相进行通信,两者通信主要是依靠hive_hbase-h ...
- 《OD大数据实战》HBase整合MapReduce和Hive
一.HBase整合MapReduce环境搭建 1. 搭建步骤1)在etc/hadoop目录中创建hbase-site.xml的软连接.在真正的集群环境中的时候,hadoop运行mapreduce会通过 ...
- Hadoop Hive与Hbase整合+thrift
Hadoop Hive与Hbase整合+thrift 1. 简介 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句 ...
- 大数据工具篇之Hive与HBase整合完整教程
大数据工具篇之Hive与HBase整合完整教程 一.引言 最近的一次培训,用户特意提到Hadoop环境下HDFS中存储的文件如何才能导入到HBase,关于这部分基于HBase Java API的写入方 ...
- Hive与Hbase整合
Hive与Hbase整合 1.文档 Hive HBase Integration 2.拷贝jar文件 2.1.把Hbase的lib目录下面的jar文件全部拷贝到Hive的lib目录下面 cd /hom ...
- Hive和Hbase整合
Hive只支持insert和delete操作,并不支持update操作,所以无法实施更新hive里的数据,而HBASE正好弥补了这一点,所以在某些场景下需要将hive和hbase整合起来一起使用. 整 ...
- Hbase 整合 Hadoop 的数据迁移
上篇文章说了 Hbase 的基础架构,都是比较理论的知识,最近我也一直在搞 Hbase 的数据迁移, 今天就来一篇实战型的,把最近一段时间的 Hbase 整合 Hadoop 的基础知识在梳理一遍,毕竟 ...
- Hive和HBase整合用户指南
本文讲解的Hive和HBase整合意思是使用Hive读取Hbase中的数据.我们可以使用HQL语句在HBase表上进行查询.插入操作:甚至是进行Join和Union等复杂查询.此功能是从Hive 0. ...
- hive与hbase整合过程
实现目标 Hive可以实时查询Hbase中的数据. hive中的表插入数据会同步更新到hbase对应的表中. 可以将hbase中不同的表中的列通过 left 或 inner join 方式映射到hiv ...
随机推荐
- Python进阶----数据库引擎(InnoDB),表的创建,mysql的数据类型,mysql表的约束
Python进阶----数据库引擎(InnoDB),表的创建,mysql的数据类型,mysql表的约束 一丶MySQL的存储引擎 什么是存储引擎: MySQL中的数据用各种不同的技术存储在文件( ...
- 关于AWK的10个经典案例
awk是Linux系统下一个处理文本的编程语言工具,能用简短的程序处理标准输入或文件.数据排序.计算以及生成报表等等,应用非常广泛.基本的命令语法:awk option 'pattern {actio ...
- vue自定义组件的递归
1.设置一个div显示数值(这个数值不要设置在组件内部) 2.设置组件的名字 <!DOCTYPE html> <html> <head> <title> ...
- canvas教程(一) 简介
什么是 canvas 按例是要介绍一下 canvas 的,在没有 canvas 之前,我们为了网页的效果,很多情况下是使用了图片来实现,不过用图片就需要加载,而且图片的体积也是一个问题,所以在 htm ...
- intellij IDEA github clone 指定分支代码
1.问题描述 在实际开发中,我们通常会使用idea克隆一个新项目(clone),通常情况下,我们默认克隆的是master分支,但是如果master分支只是一个空文件夹而已,真正的代码在develop分 ...
- AIX安装单实例11gR2 GRID+DB
AIX安装单实例11gR2 GRID+DB 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以 ...
- PHP实现微信退款功能
最近在调微信退款接口,发现有许多坑,更大家分享一下 ① 要是在测试的时候,网页提示 curl 58 说明 证书的路径出现问题(这里要填物理路径,也就是绝对路径) ②网页提示curl 52 说明你的证书 ...
- jmeter的简单使用0723
一.添加http请求 1.右击线程组---添加---取样器---http请求,具体内容如下图所示.如果请求带参数,则要点击下方的添加按钮来添加参数 2.查看请求结果,同样右击线程组-添加---监听器- ...
- Linux命令——mknode
参考:What is the mknod command used for? 前言 Linux下面,一切皆文件,当然也包括设备.Linux通过major.minor号来区分不同设备,如下图
- Linux操作系统启动故障排错之"/sbin/init"文件被删除恢复案例
Linux操作系统启动故障排错之"/sbin/init"文件被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.删除"/sbin/ini ...