Ranger编译安装应用

1.Ranger简介:

             Ranger的愿景是给apache hadoop生态系统提供全面的安全管理,目前支持的模块已经比较全面,特别对hdp版本各个模块支持的比较全,比如hdfs、yarn、hive、hbase、storm、kafka、solr、knox、atlas等,对这些模块进行细粒度的数据访问授权和审计来对数据进行有效保护;

   目前ranger已经发行了1.0.0-SNAPSHOT版本,希望今年会出稳定版本,这里记录一下去年应用的0.6.1版本安装使用过程,需要注意的是ranger对各个模块的版本支持兼容特别不好,具体要看ranger源码的构建文件中的版本号,比如0.6.1支持的hadoop是2.7.1版本的,2.6的就不行了,hive的是2.1,1.X就不支持;

2.编译

在解压的源码下执行:

 mvn -DskipTests=false clean compile package install assembly:assembly
即可,由于ranger包含的模块插件比较多,整个编译过程比较漫长,建议只选需要的模块编译,这样能加速编译;

整个编译下来生成的插件如下:

Ranger编译安装应用_第1张图片


3.安装

3.1ranger-admin安装

解压ranger-0.6.1-admin.tar.gz ,进入主目录,vim install.properties

修改以下配置项

db_root_user=ranger
db_root_password=ranger123
db_host=mysqlserverhostname
#
# DB UserId used for the Ranger schema
#
db_name=ranger_test
db_user=ranger
db_password=ranger123

#Source for Audit Store
#audit_store=solr|db
# * audit_store is solr
audit_store=db

# * audit_solr_url URL to Solr. E.g. http://:6083/solr/ranger_audits
audit_solr_urls=
audit_solr_user=
audit_solr_password=
audit_solr_zookeepers=

audit_db_name=ranger_audit_test
audit_db_user=ranger
audit_db_password=ranger123

上面数据库的配置按需要设置即可;

初始化启动前先将mysql驱动包放到/usr/share/java/mysql-connector-java.jar

接着执行./setup.sh 进行初始化;

执行ranger-admin start 即可启动ranger-admin;

浏览器http://hostname:6080如下登录界面,admin/admin 即可登录;

Ranger编译安装应用_第2张图片



3.2ranger-usersync安装

usersync用来同步linux的用户和组信息到数据库,其他模块可根据这些信息来做相应的权限配置

相应客户端解压ranger-0.6.1-usersync.tar.gz到目录ranger-usersync目录;

vim install.properties

修改:

##配置ranger-admin的地址

POLICY_MGR_URL = http://ranger-adminhost:6080

##5分钟同步一次更新

SYNC_INTERVAL = 5

#user sync log path
logdir=/data1/app/ranger/ranger-usersync/log

初始化:

./setup.sh

启动./ranger-usersync-services.sh start

3.3ranger-hdfs-plugin安装

在所有namenode节点安装该插件(HA两个节点都安装)

解压该插件为/data1/app/ranger/ranger--hdfs-plugin

vim install.properties

修改:

# POLICY_MGR_URL=http://policymanager.xasecure.net:6080
#
POLICY_MGR_URL=http://ranger-adminhost:6080

#
# This is the repository name created within policy manager
#
# Example:
# REPOSITORY_NAME=hadoopdev
#
REPOSITORY_NAME=hadoopdev


XAAUDIT.DB.IS_ENABLED=true

XAAUDIT.DB.FLAVOUR=MYSQL

XAAUDIT.DB.HOSTNAME=mysqlserverhostname

XAAUDIT.DB.DATABASE_NAME=ranger_audit

XAAUDIT.DB.USER_NAME=ranger

XAAUDIT.DB.PASSWORD=ranger123


接着:

软连接hadoop配置包和hdfs lib目录到/data1/app/ranger/hadoop目录下,如下:

ln -s $HADOOP_HOME/etc/hadoop /data1/app/ranger/hadoop/conf

ln -s $HADOOP_HOME/share/hadoop/hdfs/lib /data1/app/ranger/hadoop/lib

最后启动hdfs 插件:./enable-hdfs-plugin.sh


登录ranger-admin进入页面,点击如下添加hdfs配置

Ranger编译安装应用_第3张图片


进入以下配置项:

Namenode URL*配置为nameservices



上面的参数配置hdfs的ha信息

点击Test Connection

Ranger编译安装应用_第4张图片

可以看到已经成功

进入hadoopenv的hdfs插件,新建策略

目前只有Allow Condition:通过以下设置配置Deny Condition:

curl -u admin:admin -X GET -H "Accept: application/json" -H "Content-Type: application/json"http://rangeradmin.host:6080/service/public/v2/api/servicedef/name/hdfs > ~/downloaded_definition.json

vim downloaded_definition.json

搜索

“option”:{}

改为

"options":{"enableDenyAndExceptionsInPolicies":"true"}

保存

curl -u admin:admin -X PUT -v -H "Content-Type: application/json"http://rangeradmin.host:6080/service/public/v2/api/servicedef/name/hdfs -d @downloaded_definition.json

执行上面上传即可添加了deny条件

再次打开hadoopenv新建策略即可看到以下Deny condition



3.4plugins

由于环境作业调度系统都是用hive客户端,并没有用hiveserver2,而且该版本支持的版本较高,暂不安装该插件,其他插件需要后面可进一步安装

你可能感兴趣的:(ranger)