---恢复内容开始---
一.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
安装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,执行成功。
文件已上传成功。
---恢复内容结束---