---恢复内容开始---

一.Ranger编译

安装Ranger之前要进行编译,首先下载源代码:

命令步骤:

git clone https://github.com/apache/incubator-ranger.git

cd incubator-ranger

git checkout ranger-0.5

mvn clean compile package assembly:assembly install

 

 

Target编译构建的包如下:

 

 

 

注:这里ranger服务的相关服务和组件基本全部在了。公司网络编译大概需要4-5个小时。

 

二.Range-Admin(控制台)安装

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

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

SolrCloud安装配置

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

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

vi install.properties

JAVA_HOME=/root/jdk1.7.0_67

SOLR_INSTALL=true

SOLR_DOWNLOAD_URL=http://archive.apache.org/dist/lucene/solr/5.2.1/solr-5.2.1.tgz

SOLR_INSTALL_FOLDER=/opt/solr

SOLR_RANGER_HOME=/opt/solr/ranger_audit_server

SOLR_DEPLOYMENT=standalone

SOLR_RANGER_DATA_FOLDER=/opt/solr/ranger_audit_server/data

SOLR_LOG_FOLDER=/var/log/solr/ranger_audits

SOLR_MAX_MEM=2g

#安装单节点的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

node1:6083

 

安装RangerAdmin

命令步骤:

tar –zxvf ranger-0.5.0-admin.tar.gz

cd ranger-0.5.0-admin

vim install.properties

修改的参数如下:

setup_mode=SeparateDB

db_root_user=root

db_root_password=root23

db_host=localhost

db_name=ranger

db_user=root

db_password=root123

 

audit_store=db

audit_db_name=ranger_audit

audit_db_user=root

audit_db_password=root123

 

注:上面的db为提前安装好的mysql数据库,库不需要提前建好,ranger-admin程序会根据该配置文件自动连接并建库/表。

Mysql版本亲测5.6版本可用,5.1,5.2等版本ranger报错。其他版本还没测试,建议直接安装5.6版本。

 

配置文件修改完毕保存退出后:

初始化设置Ranger Admin:执行./setup.sh

执行完成后查看mysql:

 

 

 

运行完毕后,自动建立的库/表。

 

启动Ranger Admin:ranger-admin start

验证是否安装成功:访问http://:6080;用admin/admin登录,出现登录界面,登录成功,说明成功!

 

 

 

 

 

三.安装Ranger Usersync插件

同步linux系统用户到ranger数据库,需要安装Ranger Usersync。安装步骤如下:

tar –zxvf ranger-0.5.4-SNAPSHOT-usersync.tar.gz

cd ranger-0.5.4-SNAPSHOT-usersync

vim install.properties

打开配置文件做如下配置:

 

 

POLICY_MGR_URL=http://node1:6080

 

SYNC_SOURCE=unix

 

SYNC_INTERVAL=1

 

logdir= /opt/ranger-usersync/ranger-0.5.4-SNAPSHOT-usersync/logs

 

注:logdir 文件夹需要自己创建,不然初始化会报错。

 

初始化设置Ranger Usersync:执行./setup.sh

启动Ranger Usersync:./ranger-usersync-services.sh start

验证是否安装成功:在Ranger控制台可以看到users中同步的用户信息。

 

 

 

四:ranger-0.5.0-hdfs-plugin 组件安装

tar -zxvf ranger-0.5.4-SNAPSHOT-hdfs-plugin.tar.gz

cd ranger-0.5.4-SNAPSHOT-hdfs-plugin/

vim install.properties

打开配置文件做如下配置:

POLICY_MGR_URL=http://localhost:6080

REPOSITORY_NAME=hadoopdev

XAAUDIT.DB.IS_ENABLED=true

XAAUDIT.DB.FLAVOUR=MYSQL

XAAUDIT.DB.HOSTNAME=localhost

XAAUDIT.DB.DATABASE_NAME=ranger_audit

XAAUDIT.DB.USER_NAME=root

XAAUDIT.DB.PASSWORD=root123

 

需要把Hadoop的配置文件conf放到/opt/ranger-hdfs-plugin/hadoop/conf/下面,执行软连接命令:

Ln -s  /opt/hadoop/hadoop-2.7.0/etc/hadoop/*   /opt/ranger-hdfs-plugin/hadoop/conf/

 

 

 

需要将HDFS Plugin内的jar和HADOOP包含的HDFSjar都指向/usr/local/hadoop/lib,执行如下命令:

cp /opt/ranger-hdfs-plugin/ranger-0.5.4-SNAPSHOT-hdfs-plugin/lib/ranger-hdfs-plugin-impl/*.jar  /opt/hadoop/hadoop-2.7.0/share/hadoop/hdfs/lib/

 

 

 

 

 

 

Ln -s  /opt/hadoop/hadoop-2.7.0/share/hadoop/hdfs/lib/*.jar   /opt/ranger-hdfs-plugin/hadoop/lib/

注:/opt/ranger-hdfs-plugin/hadoop/lib需手动创建,如果不做此步会报错如下:

ERROR: Unable to find the lib directory of component [hadoop];  dir [/opt/ranger-hdfs-plugin/hadoop/lib] not found.

Exiting installation.

 

修改hdfs掩码:

<property>

<name>fs.permissions.umask-mode</name>

<value>077</value>

</property>

 

按此方法设置另外一个namenode节点。

 

到此准备工作完成:

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

 

 

 

插件显示启动成功,从新启动hadoop使ranger-hdfs插件生效。

验证是否安装成功:

a、          登录ranger admin

 

 

可以看到新建的用户组和用户已经自动同步到ranger-admin

b、          点击HDFS plugin 添加按钮,添加服务

验证HDFS Plugin服务,这时登录Ranger的管理员界面验证下HDFS plugin是够加载成功,发现并没有.

原因是安装HDFS plugin时install.properties文件里定义的REPOSITORY_NAME(值为hadoopdev)并未通过Ranger Admin在HDFS插件里的服务管理里注册成服务(名hadoopdev).

解决方案:

1 登录Ranger Adming

2 点击HDFS plugin的添加按钮

 

 

 

3 定义服务名为hadoopdev,提交其它信息后保存

 

 

 

 

 

dfs.nameservices   ky

dfs.ha.namenodes.ky    nn1,nn2

dfs.namenode.rpc-address.ky.nn1  node1:9000

dfs.namenode.rpc-address.ky.nn2   node2:9000

dfs.client.failover.proxy.provider.ky   org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

注:此处是个大坑,网上的资料的都是namenode单节点的,直接在Namenode URL *一栏填写nanode节点就可以,我们是HA模式,所以我们这里应该按照我写的这样做,填写集群namespace,然后在高级设置(Add New Configurations)添加上HA相关信息。

点击 Test Connection,弹出窗口Connected Successfully.说明插件安装成功

c、          配置hdfs-policy

linux环境下添加用户:useradd test

root用户在hdfs下创建文件夹:hdfsdfs –mkdir /test

                                                hdfs dfs –mkdir /test/sub

登录Ranger Admin,在hadoopdev里添加Policy

 

 

policy:目录/test 对用户xhhtest只设置读权限

切换到test用户,执行:hdfs dfs –ls  /test

读取到test下的sub文件夹,读取成功。

Vim my.txt 创建一个新的测试文件。

执行:hdfs dfs –put my.txt /test

put: Permission denied: user=test, access=EXECUTE, inode="/test/my.txt":root:supergroup:drwx------

权限不足,put操作失败。

修改policy,对目录/test添加write权限给用户test。

 

 

执行:hdfs dfs -put my.txt /xhhtest,执行成功。

 

 

文件已上传成功。

---恢复内容结束---