hello,大家好,我是后来。
这篇文章写之前,要先感谢的一位博主,能一直帮助我在安装ranger过程中解决问题,特别感谢!!!下面贴一下他的博客地址,日常写的文章还是非常有营养的。
安装所用到的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好在哪儿
- sentry的好处都有
- 更加丰富的组件
- 支持审计
- 提供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搞了好久)
1yum install -y git
2、下载Ranger安装包
- 我是直接在官网下的,http://ranger.apache.org/download.html,下载自己需要的版本。(建议使用这种,下载快一点)
- 也可以在线下载(需要先安装wget命令)
1wget http://mirrors.tuna.tsinghua.edu.cn/apache/ranger/2.0.0/apache-ranger-2.0.0.tar.gz
- 上传到/opt/software(自己放软件的目录),并进行解压到/opt/module/(自己想要的位置)
1 tar -zxvf apache-ranger-2.0.0.tar.gz -C /opt/module
- 修改ranger的当前目录下pom文件内的hadoop和hive版本号
1vim pom.xml
在这里插入图片描述
其他版本各位随意,尽量少改,容易出错
3、下载maven
- 因为是编译安装,自然要使用到maven,我自然贴心的帮你准备好了maven的安装包,当然你也可以自己下载
1wget 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
2
3# vim /etc/bashrc
4export MAVEN_HOME=/opt/software/apache-maven-3.6.1
5export PATH=$PATH:$MAVEN_HOME/bin
6
7MAVEN_OPTS=-Xmx2048m
8export JAVA_HOME MAVEN_HOME MAVEN_OPTS JAVA_BIN PATH CLASSPATH
- 修改maven源为阿里源或网易源
1# pwd
2/opt/software/apache-maven-3.6.1/conf
3# vim settings.xml
4<mirrors>
5 <mirror>
6 <id>nexus-aliyunid>
7 <mirrorOf>centralmirrorOf>
8 <name>Nexus aliyunname>
9 <url>http://maven.aliyun.com/nexus/content/groups/publicurl>
10 mirror>
11
12 <mirror>
13 <id>CNid>
14 <name>OSChina Centralname>
15 <url>http://maven.oschina.net/content/groups/public/url>
16 <mirrorOf>centralmirrorOf>
17 mirror>
18
19 <mirror>
20 <id>alimavenid>
21 <mirrorOf>centralmirrorOf>
22 <name>aliyun mavenname>
23 <url>https://maven.aliyun.com/nexus/content/repositories/central/url>
24 mirror>
25
26 <mirror>
27 <id>jboss-public-repository-groupid>
28 <mirrorOf>centralmirrorOf>
29 <name>JBoss Public Repository Groupname>
30 <url>https://repository.jboss.org/nexus/content/groups/publicurl>
31 mirror>
32mirrors>
4、开始编译
- 进行buile(跳过测试类)
1mvn clean compile package assembly:assembly install -DskipTests -Drat.skip=true
这个过程整体是比较慢的,顺利的话可能1小时左右,也有可能4小时以上,哈哈,还有是如果不动了,千万别以为卡住了,是因为它在下载一些jar包或者依赖,镜像是国外的,所以比较慢,只需要耐心等待就好了,当然你ctrl + C 掉,再重新编译也是没问题的
- 我遇到的第一个问题 在这里插入图片描述
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的版本号,其余的没做修改。
- 我遇到的第二个问题 在这里插入图片描述
1[INFO] ------------------------------------------------------------------------
2[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
3[ERROR] around Ant part ..."true" executable="python">... @ 4:48 in /data/apache-ranger-1.0.0/ranger-util/target/antrun/build-main.xml4[ERROR] -> [Help 1]5org.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: 16around Ant part ..."true" executable="python">... @ 4:48 in /data/apache-ranger-1.0.0/ranger-util/target/antrun/build-main.xml
这问题看起来是pyrhon版本的问题,而且它还建议我执行以下命令:
1mvn org.apache.maven.plugins:maven-antrun-plugin:1.7:run -rf :ranger-util
这个命令我终于执行成功后却还是没有tar包,最后博主提醒我其实是没有装git,所以一再强调各位,安装git
- 若编译过程中出现缺少jar包的情况,可能下载不了,需要手动自动添加;
- 最后编译成功后的界面 在这里插入图片描述
我花了3天时间,终于编译好了,开心
- 检查当前目录下的target目录,会有一堆tar.gz包(看到这些,说明你编译成功了) 在这里插入图片描述
5、安装Ranger控制台:Ranger-admin
- 安装Ranger控制台:Ranger-admin,需要所使用root用户,ranger-admin依赖mysql、JDK(安装mysql和JDK,各位自己百度吧)
- 在target目录下,解压Ranger-admin,修改配置
1tar -zxvf ranger-2.0.0-admin.tar.gz
2
3vim install.properties
4
5# 指定一个Mysql的驱动,需要自己指定一个jar包 SQL_CONNECTOR_JAR=/opt/software/mysql-connector-java-5.1.27-bin.jar
6
7# 配置Mysql数据库的信息
8db_root_user=root
9db_root_password=123456
10db_host=192.168.13.101
11
12# 安装时会使用上面的root用户创建如下数据库
13db_name=ranger
14db_user=ranger
15db_password=123456
16
17#登录ranger-admin的用户名密码:admin/Admin123
18rangerAdmin_password=Admin123
19rangerTagsync_password=Admin123
20rangerUsersync_password=Admin123
21keyadmin_password=Admin123
22#audit_store=solr
23
24# * audit_solr_url URL to Solr. E.g. http://:6083/solr/ranger_audits
25#audit_solr_urls=
26#audit_solr_user=
27#audit_solr_password=
28#audit_solr_zookeepers=
29
30# 配置RangerAdmin使用DB作为audit审计日志
31audit_store=db
32audit_db_name=ranger_audit
33audit_db_user=ranger_audit
34audit_db_password=123456
35
36policymgr_external_url=http://hadoop101(这里是自己的主机名):6080
37policymgr_http_enabled=true
38policymgr_https_keystore_file=
39policymgr_https_keystore_keyalias=rangeradmin policymgr_https_keystore_password=123456
40
41unix_user=ranger
42unix_user_pwd=ranger
43unix_group=ranger
- 使用root用户执行如下脚本,安装RangerAdmin
1./setup.sh
- 启动ranger-admin
1ews/ranger-admin-services.sh start
- web登录验证是否安装
1http://hadoop101:6080/index.html#!/policymanager/resource
2用户名:admin 密码:Admin123
在这里插入图片描述
- 安装ranger Usersync,需要使用root用户
1//在target目录下,解压文件
2tar -zxvf ranger-2.0.0-usersync.tar.gz
3
4cd ranger-2.0.0-usersync
5
6vim install.properties
7
8POLICY_MGR_URL=http://:6080(这里不要动,就是这样) 9SYNC_SOURCE=unix10SYNC_INTERVAL=111logdir=/opt/module/apache-ranger-2.0.0/target/ranger-2.0.0-usersync/logs(改成自己的目录)
- 启动ranger Usersync
1 ./setup.sh
2./ranger-usersync-services.sh
注意:logdir 文件夹需要自己创建,不然初始化可能会报错。
验证是否安装成功:在Ranger控制台可以看到users中同步的用户信息。
在这里插入图片描述
6、安装ranger插件(安装ranger-hdfs)
- 使用root用户,解压
1tar -zxvf ranger-2.0.0-hdfs-plugin.tar.gz
- 修改配置文件
1tar -zxvf ranger-2.0.0-hdfs-plugin.tar.gz
2cd ranger-1.2.0-usersync
3
4vim install.properties
5
6SQL_CONNECTOR_JAR=/usr/share/java/mysql-connector-java.jar(根据自己的目录进行填写,jar包我分享的文件里有)
7POLICY_MGR_URL=http://hadoop101:6080 REPOSITORY_NAME=hadoopdev COMPONENT_INSTALL_DIR_NAME=/opt/module/hadoop-3.1.3(自己的hadoop安装目录)
8CUSTOM_USER=hdfs
9CUSTOM_GROUP=hadoop
- 启动Ranger HDFS Plugin:
1./enable-hdfs-plugin.sh
- 验证安装成功步骤
- 会发现hadoop安装目录下etc/hadoop下有ranger-hdfs的xml文件 在这里插入图片描述
- 会发现share/hadoop/hdfs/lib 下有ranger-hdfs开头的软连接 在这里插入图片描述
- 启动hdfs会发现/etc/ranger/hadoopdev/policycache下有策略缓存文件 在这里插入图片描述
- 然后在ranger-admin的audit-->plugin status 查看状态,200即为安装成功
- 登录ranger-admin,点击HDFS plugin 添加按钮,添加服务 在这里插入图片描述
- 然后点击TestConnection,成功即可保存。1分钟后查看plugin,状态为200,说明hdfs安装成功 在这里插入图片描述
7、测试是否可用(HDFS服务测试)
hadoop版本需要和之前安装Ranger Pom文件中配置的一样。我这里是3.1.3
- linux环境下添加用户
1useradd ranger_zy
2gpasswd -a ranger_zy hadoop
- 如果可以同步,直接不用在ranger上添加此用户,但是如果不能同步需要添加(我的需要自己在ranger上同步)
- 在没有添加ranger之前进行测试,切换到ranger_zy用户
1su ranger_zy
2hdfs dfs -ls /
测试ranger_zy是否可以对/test目录进行写操作切换到ranger_zy用户
1hdfs dfs -put /opt/module/111.txt /test(自己搞个文件测试一下上传)
2//结果应该是权限问题不能上上传
- 在添加ranger之后进行操作
在ranger中对此ranger_zy用户进行权限操控 在这里插入图片描述
点击保存等待生效(30s)后,再次对/test目录进行操作,看是否可以成功
到这里基本实现了Ranger的hdfs权限的管理,大家自己慢慢研究这个Ranger吧,内容还是非常多的。
致谢
能把Ranger从不懂到能搭起来,还能略微知道些其中的架构原理,感谢众多博客的帮助,贴几个过程中非常重要的链接。
1、p/11887317.html
2、https://www.ixigua.com/pseries/6756754286144651779_6756564943463514627/?logTag=Crrlgz-qLEYXlv51gaU-J
如果大家在编译过程中遇到一些问题说不定你的这个问题我正好遇到过,可以节省很多没必要的时间,哈哈。
编译要有一颗平常心,按照一个帖子的方法装就好,不然最后装的乱七八糟的。加油。