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>之后修改ranger项目根目录的pom文件,如下:
<id>central_mirror</id>
<url>http://repo1.maven.org/maven2/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<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>
最后看到下图时,感动的都要哭了。。。。
查找已编译打包好的文件
ls target/*.tar.gz
结果如下:
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文件,修改参数的值如下所示:
其实打开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
#确保防火墙已经关闭
chkconfig iptables off
4.2 Ranger Admin安装配置cp /opt/ranger/incubator-ranger-master/target/ranger-0.6.0-SNAPSHOT-admin.tar.gz /opt
可以看到opt目录下已有该tar.gz文件
#安装Ranger Admin
./setup.sh
见到如下结果,又要泪奔了,因为mysql那里解决了好多好多问题。。。。
#启动Ranger Admin服务
ranger-admin start
#验证Ranger Admin服务,如果出现Ranger的登录界面,说Okay了.注:用户名/密码 admin/admin
lsof –i:6080
访问页面:http://localhost:6080,出现了下图,就说明安装成功了。哈哈用户名:admin;密码:admin 登陆进去之后,出现下图:
暂时告一段落,之后细化的再继续博客。。。赶快回去啦。。。