Ranger部署时跳过数据集ddl操作说明

1. 准备导入的Mysql服务

2. 准备相关ranger sql文件

下载ranger安装包, 以从easyops-dev包服务器上下载为例

wget http://repo.bdms.service.163.org/easyops-dev/centos7/ranger/ranger-0.5.4-1.0.6-hive-2.1.1-admin.tar.gz

解压ranger安装包,以从easyops-dev包服务器上下载为例

Bash
tar -zxvf ranger-0.5.4-1.0.6-hive-2.1.1-admin.tar.gz

获取ranger 安装包内的 db 目录和 jisql 目录

3. 准备数据库连接相关Jar包,

以从easyops-dev包服务器上下载为例

wget http://repo.bdms.service.163.org/easyops-dev/centos7/mysql/share/lib/mysql-connector-java-5.1.39.jar

4. 创建ranger相关数据库和数据库用户

4.1 Ranger 服务 mysql 配置相关说明

ranger数据库名为ranger服务安装时的 ranger_db_name 配置项,默认值为 ranger

ranger数据库用户为ranger服务安装时的 ranger_db_user 配置项,默认值为 ranger

用户密码为 ranger_db_password 配置项。默认值为 ranger@163

ranger审计数据库名为ranger服务安装时的 audit_db_name 配置项,默认值为 ranger

ranger审计数据库用户为ranger服务安装时的 audit_db_user 配置项,默认值为 rangeraudit

用户密码为 audit_db_password 配置项。默认值为 rangeraudit@163

4.2 创建 ranger 相关数据库和数据库用户的 sql 文件

execute_before_install_ranger.sql

CREATE USER 'ranger'@'%' IDENTIFIED BY 'ranger@163'; 
GRANT USAGE ON *.* TO 'ranger'@'%'; 
CREATE USER 'rangeraudit'@'%' IDENTIFIED BY 'rangeraudit@163'; 
GRANT USAGE ON *.* TO 'rangeraudit'@'%'; 
create database ranger DEFAULT CHARSET utf8; 
grant all privileges on `ranger`.* to 'ranger'@'localhost' identified by 'ranger@163' with grant option; 
grant all privileges on `ranger`.* to 'ranger'@'%' identified by 'ranger@163' with grant option; 
grant all privileges on `ranger`.* to 'rangeraudit'@'localhost' identified by 'rangeraudit@163' with grant option; 
grant all privileges on `ranger`.* to 'rangeraudit'@'%' identified by 'rangeraudit@163' with grant option; 
set global log_bin_trust_function_creators=1; 
use ranger; 
flush privileges;

4.3 登录到导入的mysql,然后导入上述 sql 文件

source $PATH/execute_before_install_ranger.sql

5. 执行 db_setup.py 脚本来创建 ranger 数据相关 table

5.1 执行 db_setup.py 脚本所需的 install.properties 配置文件

install.properties

DB_FLAVOR=MYSQL JAVA_BIN='java' 
mysql_core_file=db/mysql/xa_core_db.sql 
mysql_audit_file=db/mysql/xa_audit_db.sql 
oracle_core_file=db/oracle/xa_core_db_oracle.sql 
oracle_audit_file=db/oracle/xa_audit_db_oracle.sql 
postgres_core_file=db/postgres/xa_core_db_postgres.sql 
postgres_audit_file=db/postgres/xa_audit_db_postgres.sql 
sqlserver_core_file=db/sqlserver/xa_core_db_sqlserver.sql 
sqlserver_audit_file=db/sqlserver/xa_audit_db_sqlserver.sql 
sqlanywhere_core_file=db/sqlanywhere/xa_core_db_sqlanywhere.sql 
sqlanywhere_audit_file=db/sqlanywhere/xa_audit_db_sqlanywhere.sql 
admin_db_flavor=MYSQL audit_store=db 
# db_root_user 为 ranger 配置中 mysql 配置组中的 ranger_db_user 
db_root_user=ranger 
# db_root_password 为 ranger 配置中 mysql 配置组中的 ranger_db_password 
db_root_password=ranger@163 
# db_host 需要根据ranger依赖的mysql的真是Host ip来填写 
db_host=192.168.12.105:3306 
# db_name 为 ranger 配置中 mysql 配置组中的 ranger_db_name 
db_name=ranger 
# db_user 为 ranger 配置中 mysql 配置组中的 ranger_db_user 
db_user=ranger 
# db_password 为 ranger 配置中 mysql 配置组中的 ranger_db_password 
db_password=ranger@163 
# audit_db_name 为 ranger 配置中 mysql 配置组中的 audit_db_name 
audit_db_name=ranger 
# audit_db_user 为 ranger 配置中 mysql 配置组中的 audit_db_user 
audit_db_user=rangeraudit 
# audit_db_password 为 ranger 配置中 mysql 配置组中的 audit_db_password 
audit_db_password=rangeraudit@163

5.2 执行 db_setup.py 脚本

设置 JAVA_HOME

export JAVA_HOME=/usr/lib64/jdk8/

python db_setup.py

执行此脚本之前需要确保 install.properties,mysql-connector-java-5.1.39.jar,以及从ranger安装包中提取的 db 和 jisql 目录处于同一路径下。

执行前需确保 ranger 和 rangeraudit 用户具有 grant 权限

若执行 python db_setup.py 出现如下类型报错:

Generated

可以直接登录 myqsl 后执行上图中红框内的报错的mysql命令:

GRANT INSERT ON ranger.xa_access_audit TO ‘rangeraudit’@’192.168.12.105:3306’;

然后重新执行 python db_setup.py

6. 回收 ranger 数据库用户的 ddl 权限

revoke_user_grants.sql

REVOKE CREATE, DROP, ALTER ON `ranger`.* FROM 'ranger'@'%'; 
REVOKE CREATE, DROP, ALTER ON `ranger`.* FROM 'rangeraudit'@'%'; 
set global log_bin_trust_function_creators=0; 
flush privileges;

注意 revoke_user_grants.sql 中的数据库名(ranger),数据库用户和数据审计用户名需要依据真实的配置来改变

登录导入的Mysql,导入上述revoke_user_grants.sql

7. 使用easyops平台部署ranger服务,并验证相关ranger功能是否可用