Ranger集成hive 安装与测试
前期准备
-
ranger2.0.0
-
hive2.3.7
-
hive数据库创建t_user表
CREATE TABLE t_user (name STRING,phone STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE;
添加内容:
meizi 18518760001
xuaner 18518760002
afa 18518760003
hanze 18518760004
xupeng 18518760005
xiaofeng 18518760006
shuoshuo 18518760007
软件安装
下载ranger2.0.0
wget https://mirrors.tuna.tsinghua.edu.cn/apache/ranger/2.0.0/apache-ranger-2.0.0.tar.gz
解压编译源文件
tar apache-ranger-2.0.0.tar.gz
cd apache-ranger-2.0.0
mvn clean
mvn -DskipTests=true clean compile package install assembly:assembly
中间可能会出错,有的jar报下载不了,需要重新clean,重新编译
还需要安装python2
解压安装
首先连接MySQL查看是否有ranger库
删除MySQL中原有的ranger库
进入到ranger下的target文件夹下
tar ranger-2.0.0-admin.tar.gz -C /usr/local/ranger2.0
tar ranger-2.0.0-usersync.tar.gz -C /usr/local/ranger2.0
tar ranger-2.0.0-hive-plugin.tar.gz -C /usr/local/ranger2.0
cd /usr/local/ranger2.0
ln -s ranger-2.0.0-admin ranger-admin
ln -s ranger-2.0.0-usersync ranger-usersync
ln -s ranger-2.0.0-hive-plugin ranger-hive-plugin
安装Ranger控制台:Ranger—admin
进入 ranger-2.0.0-admin并修改配置文件:install.properties
vim /usr/local/ranger2.0/install.properties
修改的参数如下:
#此参数表示数据库脚本单独执行
setup_mode=SeparateDBA
#数据库类型
DB_FLAVOR=MYSQL
#连接mysql的jar包所在位置
SQL_CONNECTOR_JAR=/usr/share/java/mysql-connector-java-5.1.47.jar
db_root_user=root
db_root_password=输入密码
db_host=数据库地址
db_name=ranger
db_user=root
db_password=输入密码
#设置Ranger里面的用户密码
rangerAdmin_password=输入密码
rangerTagsync_password=输入密码
rangerUsersync_password=输入密码
keyadmin_password=输入密码
#禁用audit审计,如需开启,需安装solr
#audit_store=solr
#audit_solr_urls=
#audit_solr_user=
#audit_solr_password=
#audit_solr_zookeepers=
执行数据库脚本
python2.6 ./dba_script.py
执行初始化设置
./setup.sh
启动Ranger Admin
ranger-admin start
检查是否安装成功
账号密码:admin
访问:http://localhost:6080
安装Ranger Usersync
进入 ranger-2.0.0-usersync并修改配置文件:install.properties
vim /usr/local/ranger2.0/ranger-2.0.0-usersync/install.properties
修改的参数如下:
POLICY_MGR_URL=http://10.200.4.117:6080
SYNC_SOURCE=unix
#多久同步一次数据,单位为分钟
SYNC_INTERVAL=1 logdir=/data/ranger/logs/usersync
执行初始化设置
./setup.sh
启动Ranger Usersync
./ranger-usersync-services.sh start
验证是否安装成功:打开Ranger控制台页面,点击“Settings->Users/Groups”,可以看到从Linux同步过来的用户信息则说明成功。如下:
Hive插件安装
进入 ranger-2.0.0-hive-plugin并修改配置文件:install.properties
vim /usr/local/ranger2.0/ranger-2.0.0-hive-plugin/install.properties
修改的参数如下:
POLICY_MGR_URL=http://ip地址:6080
REPOSITORY_NAME=hivedev
COMPONENT_INSTALL_DIR_NAME=hive的安装目录
启动Ranger HivePlugin
./enable-hive-plugin.sh
(停止命令为:./disable-hive-plugin.sh)
重启hiveserver2
连接数据库
bin/beeline -u " jdbc:hive2://node4:10000/hive_connect;user=admin;password=ad min”
执行sql语句
show tables;
Error: Error while compiling statement: FAILED: HiveAccessControlException Permission denied: user [admin] does not have [USE] privilege on [hive_connect] (state=42000,code=40000)
select * from t_user;
Error: Error while compiling statement: FAILED: HiveAccessControlException Permission denied: user [admin] does not have [SELECT] privilege on [hive_connect/t_user/*] (state=42000,code=40000)
显示没有权限安装成功!
创建Hive Service
填写完成后点击Test Connection测试连接
点击:查看权限
配置权限
为admin配置select权限
在bin/beeline连接用admin登录查询select表
select * from t_user;
+--------------+---------------+
| t_user.name | t_user.phone |
+--------------+---------------+
| meizi | 18518760001 |
| xuaner | 18518760002 |
| afa | 18518760003 |
| hanze | 18518760004 |
| xupeng | 18518760005 |
| xiaofeng | 18518760006 |
| shuoshuo | 18518760007 |
+--------------+---------------+
为t_user表配置动态列屏蔽
Select Masking Option里面填Mask的选项,默认有: 显示前4位、显示后4位、哈希、Null值、日期类型仅显示年等。我们这里使用Custom自定义,
其实就是写Select子句 可以根据逻辑自己实现,也可使用UDF。本例中我们使用concat(substr(phone,1,7),’****’)将手机号的后四位屏蔽掉
在bin/beeline连接用admin登录查询select表
select * from t_user;
+--------------+---------------+
| t_user.name | t_user.phone |
+--------------+---------------+
| meizi | 1851876**** |
| xuaner | 1851876**** |
| afa | 1851876**** |
| hanze | 1851876**** |
| xupeng | 1851876**** |
| xiaofeng | 1851876**** |
| shuoshuo | 1851876**** |
+--------------+---------------+
Row Level Filter(行级别过滤)
在bin/beeline连接用admin登录查询select表
select * from t_user;
+--------------+---------------+
| t_user.name | t_user.phone |
+--------------+---------------+
| hanze | 1851876**** |
+--------------+---------------+
Row Level Filter里面填Filter的过滤规则,其实就是写Where子句
参考博客
https://www.cnblogs.com/zhi-leaf/p/11506148.html
https://blog.csdn.net/andyguan01_2/article/details/88950551
https://www.jianshu.com/p/d9941b8687b7
声明
以上内容均来源于实用中的网络和官方查找,若有批漏或侵权请告知。
决定我们成为什么样人的,不是我们的能力,而是我们的选择。