大数据权限管理工具Ranger 2.0.0的安装部署到使用测试(踩坑详情)

这篇文章写之前,要先感谢博客园的一位博主,能一直帮助我在安装ranger过程中解决问题,特别感谢!!!下面贴一下他的博客地址,日常写的文章还是非常有营养的。
https://www.cnblogs.com/swordfall/

安装所用到的Ranger2.0.0版本以及Maven3.6.1还有Mysql5.7.25全套rpm包都给大家准备好了,自行下载。
链接:https://pan.baidu.com/s/1Sd-iU5cPYITVXyHO5a0A_Q
提取码:8utl

一、Ranger的介绍

Apache Ranger是一个在Hadoop平台上实现,监控和管理全面数据安全性的框架。Ranger比Sentry好在哪儿

  1. sentry的好处都有
  2. 更加丰富的组件
  3. 支持审计
  4. 提供rest风格的API,可以自由开发

二、Ranger的架构

在这里插入图片描述
在这里插入图片描述
Rager-admin 是基于Spring的框架

web :管理用户、资源、权限策略

rest api :可以自己实现
在这里插入图片描述

三、Ranger的安装与部署

框架 版本号
Linux centos7
Ranger 2.0.0
Hadoop 3.1.3
Hive 3.1.2
Maven 3.6.1
Python 2.7.5

由于Ranger不提供二进制安装包,故需要maven编译。下面是详细步骤
温馨提示:最好全程使用root用户,免去不必要的权限烦恼‘
改配置文件,最好先把配置文件做个备份,以防止自己一顿操作猛如虎,结果却像250

1、安装git(务必安装)

不管各位的Ranger安装包是自己在官网下的,还是使用git拉取的,请务必安装git(我就是因为没装git搞了好久)

yum install -y git 

2、下载Ranger安装包

  1. 我是直接在官网下的,http://ranger.apache.org/download.html,下载自己需要的版本。(建议使用这种,下载快一点)
  2. 也可以在线下载(需要先安装wget命令)
wget http://mirrors.tuna.tsinghua.edu.cn/apache/ranger/2.0.0/apache-ranger-2.0.0.tar.gz
  1. 上传到/opt/software(自己放软件的目录),并进行解压到/opt/module/(自己想要的位置)
 tar -zxvf apache-ranger-2.0.0.tar.gz -C /opt/module
  1. 修改ranger的当前目录下pom文件内的hadoop和hive版本号
vim pom.xml

在这里插入图片描述
其他版本各位随意,尽量少改,容易出错

3、下载maven

  1. 因为是编译安装,自然要使用到maven,我自然贴心的帮你准备好了maven的安装包,当然你也可以自己下载
wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
  1. 解压后修改环境变量及内存
# tar -zxvf apache-maven-3.6.2-bin.tar.gz

# vim /etc/bashrc
export MAVEN_HOME=/opt/software/apache-maven-3.6.1
export PATH=$PATH:$MAVEN_HOME/bin

MAVEN_OPTS=-Xmx2048m
export JAVA_HOME MAVEN_HOME MAVEN_OPTS JAVA_BIN PATH CLASSPATH
  1. 修改maven源为阿里源或网易源
# pwd
/opt/software/apache-maven-3.6.1/conf
# vim settings.xml
<mirrors>
   <mirror>
     <id>nexus-aliyun</id>
     <mirrorOf>central</mirrorOf>
     <name>Nexus aliyun</name>
     <url>http://maven.aliyun.com/nexus/content/groups/public</url>
   </mirror>

   <mirror>
     <id>CN</id>
     <name>OSChina Central</name>
     <url>http://maven.oschina.net/content/groups/public/</url>
     <mirrorOf>central</mirrorOf>
   </mirror>

   <mirror>
     <id>alimaven</id>
     <mirrorOf>central</mirrorOf>
     <name>aliyun maven</name>
     <url>https://maven.aliyun.com/nexus/content/repositories/central/</url>
   </mirror>

   <mirror>
     <id>jboss-public-repository-group</id>
     <mirrorOf>central</mirrorOf>
     <name>JBoss Public Repository Group</name>
     <url>https://repository.jboss.org/nexus/content/groups/public</url>
   </mirror>
</mirrors>

4、开始编译

  1. 进行buile(跳过测试类)
mvn clean compile package assembly:assembly install -DskipTests -Drat.skip=true

这个过程整体是比较慢的,顺利的话可能1小时左右,也有可能4小时以上,哈哈,还有是如果不动了,千万别以为卡住了,是因为它在下载一些jar包或者依赖,镜像是国外的,所以比较慢,只需要耐心等待就好了,当然你ctrl + C 掉,再重新编译也是没问题的

  1. 我遇到的第一个问题
    在这里插入图片描述
    Maven build Compilation error : Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:testcompile (default-compile) on project Maven
    **这个问题是因为我乱改了pom文件中Hbase的版本号,**最后我只改了hive和Hadoop的版本号,其余的没做修改。

  2. 我遇到的第二个问题
    在这里插入图片描述

[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (generate-version-annotation) on project ranger-util: An Ant BuildException has occured: exec returned: 1
[ERROR] around Ant part ...<exec failonerror="true" executable="python">... @ 4:48 in /data/apache-ranger-1.0.0/ranger-util/target/antrun/build-main.xml
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (generate-version-annotation) on project ranger-util: An Ant BuildException has occured: exec returned: 1
around Ant part ...<exec failonerror="true" executable="python">... @ 4:48 in /data/apache-ranger-1.0.0/ranger-util/target/antrun/build-main.xml

这问题看起来是pyrhon版本的问题,而且它还建议我执行以下命令:

mvn org.apache.maven.plugins:maven-antrun-plugin:1.7:run -rf :ranger-util

这个命令我终于执行成功后却还是没有tar包,最后博主提醒我其实是没有装git,所以一再强调各位,安装git

  1. 若编译过程中出现缺少jar包的情况,可能下载不了,需要手动自动添加;
  2. 最后编译成功后的界面
    在这里插入图片描述
    我花了3天时间,终于编译好了,开心
  3. 检查当前目录下的target目录,会有一堆tar.gz包(看到这些,说明你编译成功了)
    在这里插入图片描述

5、安装Ranger控制台:Ranger-admin

  1. 安装Ranger控制台:Ranger-admin,需要所使用root用户,ranger-admin依赖mysql、JDK(安装mysql和JDK,各位自己百度吧)
  2. 在target目录下,解压Ranger-admin,修改配置
tar -zxvf ranger-2.0.0-admin.tar.gz

vim install.properties

# 指定一个Mysql的驱动,需要自己指定一个jar包 SQL_CONNECTOR_JAR=/opt/software/mysql-connector-java-5.1.27-bin.jar 

# 配置Mysql数据库的信息 
db_root_user=root
db_root_password=123456
db_host=192.168.13.101

# 安装时会使用上面的root用户创建如下数据库
db_name=ranger
db_user=ranger
db_password=123456

#登录ranger-admin的用户名密码:admin/Admin123
rangerAdmin_password=Admin123
rangerTagsync_password=Admin123
rangerUsersync_password=Admin123
keyadmin_password=Admin123
#audit_store=solr 

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

# 配置RangerAdmin使用DB作为audit审计日志
audit_store=db
audit_db_name=ranger_audit
audit_db_user=ranger_audit
audit_db_password=123456

policymgr_external_url=http://hadoop101(这里是自己的主机名):6080
policymgr_http_enabled=true
policymgr_https_keystore_file=
policymgr_https_keystore_keyalias=rangeradmin policymgr_https_keystore_password=123456

unix_user=ranger
unix_user_pwd=ranger
unix_group=ranger
  1. 使用root用户执行如下脚本,安装RangerAdmin
./setup.sh
  1. 启动ranger-admin
ews/ranger-admin-services.sh start
  1. web登录验证是否安装
http://hadoop101:6080/index.html#!/policymanager/resource
用户名:admin 密码:Admin123

在这里插入图片描述

  1. 安装ranger Usersync,需要使用root用户
//在target目录下,解压文件
tar -zxvf ranger-2.0.0-usersync.tar.gz

cd ranger-2.0.0-usersync

vim install.properties

POLICY_MGR_URL=http://<ip:host>:6080(这里不要动,就是这样)
SYNC_SOURCE=unix
SYNC_INTERVAL=1
logdir=/opt/module/apache-ranger-2.0.0/target/ranger-2.0.0-usersync/logs(改成自己的目录)
  1. 启动ranger Usersync
 ./setup.sh
./ranger-usersync-services.sh

注意:logdir 文件夹需要自己创建,不然初始化可能会报错。
验证是否安装成功:在Ranger控制台可以看到users中同步的用户信息。
在这里插入图片描述

6、安装ranger插件(安装ranger-hdfs)

  1. 使用root用户,解压
tar -zxvf ranger-2.0.0-hdfs-plugin.tar.gz
  1. 修改配置文件
tar -zxvf ranger-2.0.0-hdfs-plugin.tar.gz
cd ranger-1.2.0-usersync

vim install.properties 

SQL_CONNECTOR_JAR=/usr/share/java/mysql-connector-java.jar(根据自己的目录进行填写,jar包我分享的文件里有)
POLICY_MGR_URL=http://hadoop101:6080 REPOSITORY_NAME=hadoopdev COMPONENT_INSTALL_DIR_NAME=/opt/module/hadoop-3.1.3(自己的hadoop安装目录)
CUSTOM_USER=hdfs
CUSTOM_GROUP=hadoop
  1. 启动Ranger HDFS Plugin:
./enable-hdfs-plugin.sh
  1. 验证安装成功步骤
  • 会发现hadoop安装目录下etc/hadoop下有ranger-hdfs的xml文件
    在这里插入图片描述
  • 会发现share/hadoop/hdfs/lib 下有ranger-hdfs开头的软连接
    在这里插入图片描述
  • 启动hdfs会发现/etc/ranger/hadoopdev/policycache下有策略缓存文件
    在这里插入图片描述
  • 然后在ranger-admin的audit–>plugin status 查看状态,200即为安装成功
  1. 登录ranger-admin,点击HDFS plugin 添加按钮,添加服务
    在这里插入图片描述
  2. 然后点击TestConnection,成功即可保存。1分钟后查看plugin,状态为200,说明hdfs安装成功
    在这里插入图片描述

7、测试是否可用(HDFS服务测试)

hadoop版本需要和之前安装Ranger Pom文件中配置的一样。我这里是3.1.3

  1. linux环境下添加用户
useradd ranger_zy
gpasswd -a ranger_zy hadoop
  1. 如果可以同步,直接不用在ranger上添加此用户,但是如果不能同步需要添加(我的需要自己在ranger上同步)
  2. 在没有添加ranger之前进行测试,切换到ranger_zy用户
su ranger_zy
hdfs dfs -ls /

测试ranger_zy是否可以对/test目录进行写操作切换到ranger_zy用户

hdfs dfs -put /opt/module/111.txt /test(自己搞个文件测试一下上传)
//结果应该是权限问题不能上上传
  1. 在添加ranger之后进行操作
    在ranger中对此ranger_zy用户进行权限操控
    在这里插入图片描述
    点击保存等待生效(30s)后,再次对/test目录进行操作,看是否可以成功

到这里基本实现了Ranger的hdfs权限的管理,大家自己慢慢研究这个Ranger吧,内容还是非常多的。

致谢

能把Ranger从不懂到能搭起来,还能略微知道些其中的架构原理,感谢众多博客的帮助,贴几个过程中非常重要的链接。
1、https://www.cnblogs.com/swordfall/p/11887317.html
2 、https://www.ixigua.com/pseries/6756754286144651779_6756564943463514627/?logTag=Crrlgz-qLEYXlv51gaU-J

发布了5 篇原创文章 · 获赞 1 · 访问量 561

猜你喜欢

转载自blog.csdn.net/weixin_38586230/article/details/105725346