Apache Ranger0.6版本源码编译

时间:2022-06-18 09:20:38

1 Ranger简介

Apache Ranger提供一个集中式安全管理框架,它可以对Hadoop生态的组件如Hive,Hbase进行细粒度的数据访问控制.通过操作Ranger控制台,管理员可以轻松的通过配置策略来控制用户访问HDFS文件夹、HDFS文件、数据库、表、字段权限.这些策略可以为不同的用户和组来设置,同时权限可与hadoop无缝对接.

2 准备

2.1 环境说明

1 Ranger源码编译依赖如下linux组件:maven,git,gcc,MySQL

2 安装git和gcc时采用yum安装,请配置好本地源

3 安装mysql是请确保清理好系统自带的mysql.

 虚拟机里Linux系统版本

[root@localhost ranger-0.5.0-usersync]# cat /etc/issue | grep Linux

Red Hat Enterprise Linux Server release 6.5 (Santiago)

java版本

[root@localhost native]# Java -version

java version "1.7.0_67"

注:官网强调一定是1.7以上版本.

Java(TM) SE RuntimeEnvironment (build 1.7.0_67-b01)

Java HotSpot(TM) 64-BitServer VM (build 24.65-b04, mixed mode)

2.1.3mysql版本

[root@localhost native]# mysql -uroot -proot-e"select version()";

Warning: Using a password onthe command line interface can be insecure.

+-----------+

| version() |

+-----------+

5.6.14    |

+-----------+

注:

1 Mysql 驱动为mysql-connector-java-5.1.31-bin.jar

2 改jar被重命名后放置在/usr/share/java/内被其它Ranger插件共享

2.1.4 Maven版本

 [root@localhost bin]# mvn -version

Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9;2014-02-15T01:37:52+08:00)

Maven home: /root/maven-3.2.1

Java version: 1.7.0_67,vendor: Oracle Corporation

Java home:/root/jdk1.7.0_67/jre

Default locale: en_US,platform encoding: UTF-8

OS name: "linux",version: "2.6.32-431.el6.x86_64", arch: "amd64", family:"unix"

2.1.5 git版本

 [root@localhost native]# git version

git version 1.7.1

2.2 编译准备

2.2.1 安装maven

[root@localhost ~]# cd /root

#下载地址

#https://maven.apache.org/download.cgi 最新版

#http://apache.opencas.org/maven/binaries/apache-maven-3.2.1-bin.tar.gz

tar –zxvf apache-maven-3.2.1-bin.tar.gz

mv apache-maven-3.2.1-bin maven-3.2.1

#修改环境变量,在~/.bash_profile里定义MAVEN_HOME并追加到PATH里

export MAVEN_HOME=/root/maven-3.2.1

:$MAVEN_HOME/bin:$PATH

#source环境变量,测试maven版本

source ~/.bash_profile

mvn –version

2.2.2 安装git

这里通过本地源yum方式安装.

yum install git

2.2.3 安装gcc

yum install gcc

2.2.4 安装mysql

1) 安装Mysql服务、客户端

rpm –ivh MySQL-shared-5.6.14-1.el6.x86_64.rpm

rpm –ivh MySQL-shared-compat-5.6.14-1.el6.x86_64.rpm

rpm –ivh MySQL-server-5.6.14-1.el6.x86_64.rpm

rpm –ivh MySQL-client-5.6.14-1.el6.x86_64.rpm

2) 启动mysql服务

service mysql start

3) 修改mysql初始密码,先找到安装时的初始密码,在修改成自己的密码

[root@localhost ~]#cat /root/.mysql_secret

# The random password set for the root user at Tue Dec 2221:17:22 2015 (local time):RUmKBqcY

mysql –uroot -p RUmKBqcY

set password=password(‘root’)

3、编译

首先到 https://github.com/apache/incubator-ranger.gitclone下来Ranger的源码。(当时因为代理原因在终端一直clone不下来,无奈只好在网页版处下载了zip格式下来)

之后进入解压文件夹目录下,使用

export MAVEN_OPTS="-Xmx512M" 设置参数,否则会出错:gc overhead limit exceeded (然而我设置为512仍然不行,改为1024才通过)

mvn clean compile package assembly:assembly install -Dmaven.test.skip=true;

此处将单元测试全部略过,因为有的单元测试有问题会影响编译。

这中间出现了n次问题。具体做到的修改如下:

maven的settings.xml文件修改远程仓库的url:

<mirror>
<id>central_mirror</id>
<url>http://repo1.maven.org/maven2/</url>
<mirrorOf>central</mirrorOf>
</mirror>
之后修改ranger项目根目录的pom文件,如下:

<repository>
<id>apache.snapshots.https</id>
<name>Apache Development Snapshot Repository</name>
<!--url>https://repository.apache.org/content/repositories/snapshots</url-->
<url>http://repo1.maven.org/maven2/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
之后又遇到的其他问题已经在其他博客中写道了,主要是自己编源码的经验太少,太嫩,出现了一堆问题。

最后看到下图时,感动的都要哭了。。。。

Apache Ranger0.6版本源码编译

查找已编译打包好的文件

ls target/*.tar.gz

结果如下:

Apache Ranger0.6版本源码编译

4. 配置

Ranger在solr里存储日志,RangerAdmin UI依赖solr组件完成审计日志的查询,所以需要先安装和配置好Solr

注:目前(HDFS-Plugin)的测试日志审计时没选择Solr方式,但还是先配置好Standalone模式的solr.

4.1 Solr或SolrCloud安装配置

cd /root/incubator-ranger/security-admin/contrib/solr_for_audit_setup

#打开install.properties文件,修改参数的值如下所示:

Apache Ranger0.6版本源码编译

其实打开install.properities文件,会发现上述设置都已有默认值,有的可能被注释掉了。

#安装单节点的solr

./ setup.sh

#按照如下安装提示启动、停止solr服务

cat/opt/solr/ranger_audit_server/install_notes.txt

#启动solr

/opt/solr/ranger_audit_server/scripts/start_solr.sh

#验证solr服务是否可正常使用

lsof –i:6083

http://192.168.56.101:6083

#确保防火墙已经关闭

chkconfig iptables off

4.2  Ranger Admin安装配置

cp /opt/ranger/incubator-ranger-master/target/ranger-0.6.0-SNAPSHOT-admin.tar.gz /opt

cd /opt

可以看到opt目录下已有该tar.gz文件

Apache Ranger0.6版本源码编译

#安装Ranger Admin

./setup.sh

见到如下结果,又要泪奔了,因为mysql那里解决了好多好多问题。。。。

Apache Ranger0.6版本源码编译

#启动Ranger Admin服务

ranger-admin start

#验证Ranger Admin服务,如果出现Ranger的登录界面,说Okay了.注:用户名/密码 admin/admin

lsof –i:6080

访问页面:http://localhost:6080,出现了下图,就说明安装成功了。哈哈

Apache Ranger0.6版本源码编译

用户名:admin;密码:admin  登陆进去之后,出现下图:

Apache Ranger0.6版本源码编译

暂时告一段落,之后细化的再继续博客。。。赶快回去啦。。。