1. 概述

  Apache Ranger是大数据领域的一个集中式安全管理框架,目的是通过制定策略(policies)实现对Hadoop组件的集中式安全管理。用户可以通过Ranger实现对集群中数据的安全访问。

2. Ranger内部组件

  Ranger由三个模块组成:Ranger内部组件、依赖组件、扩展性组件。

2.1 内部组件

  包含的内部组件如下:

  • Ranger Admin 用户管理策略,提供WebUI和RestFul接口
  • Ranger UserSync 用于将Unix系统或LDAP用户/组同步到RangerAdmin
  • Ranger TagSync 同步Atlas中的Tag信息,基于标签的权限管理,当一个用户的请求涉及到多个应用系统中的多个资源的权限时,可以通过只配置这些资源的tag方便快速的授权
  • Ranger KMS 对hadoop KMS的策略管理和密钥管理

  注:Apache atlas 是Hadoop社区为解决Hadoop生态系统的元数据治理问题而产生的开源项目,它为Hadoop集群提供了包括数据分类、集中策略引擎、数据血缘、安全和生命周期管理在内的元数据治理核心能力。  

2.2 依赖组件

  • JDK8 用于运行RangerAdmin、RangerKMS
  • Python2.7 用于Ranger自动化安装
  • Git 用于Ranger编译
  • Maven3.6 用于Ranger编译
  • RDMS 用于存储授权策略,存储Ranger用户/组,存储审核日志
  • Solr(可选) 存储日志
  • Kerberos(可选) 确保所有请求都被认证

2.3 扩展性组件

  HDFSHBASEHIVEYARN、KNOX、STORM、SOLR、KAFKA、NIFI、KYLIN、NIFI-REGISTRY、SQOOP、ATLAS、ELASTICSEARCH、PRESTO、OZONE

2.4 总体架构

  

3. Ranger编译

  Ranger官网源码包版本是1.2.0,不提供二进制安装包,故需要maven编译。目前测试使用的版本为:

ranger版本 1.2.0
hadoop版本 2.7.3
hbase版本  
hive版本   2.1.0         
postgres版本       11
python版本 2.7

3.1 官网下载源码包

# wget http://mirrors.tuna.tsinghua.edu.cn/apache/ranger/1.2.0/apache-ranger-1.2.0.tar.gz

3.2 下载maven

  编译安装需要使用到maven,下载如下:

# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz

  解压,并添加环境变量,同时修改maven的Java堆内存最大值,避免编译内存溢出

# tar -zxvf apache-maven-3.6.-bin.tar.gz

# vim /etc/bashrc
export MAVEN_HOME=/opt/app/apache-maven-3.6.
export PATH=$PATH:$MAVEN_HOME/bin MAVEN_OPTS=-Xmx2048m
export JAVA_HOME MAVEN_HOME MAVEN_OPTS JAVA_BIN PATH CLASSPATH

  修改maven源为阿里源或其他源

# pwd
/opt/app/apache-maven-3.6./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>

3.3 安装git

  编译ranger依赖git,需要安装git

yum -y install git

3.4 安装python2

  编译机器上的python必须为python2,不能是python3,否则编译时会报错

yum -y install python2

3.5 编译Ranger

  首次编译ranger,需要时间比较长,时间主要用于maven下载相应的依赖包,时间快慢取决于机器网络带宽。

# pwd
/opt/app/apache-ranger-1.2.
# mvn clean compile package assembly:assembly install -DskipTests -Drat.skip=true

  编译完成如下:

  编译完成后,在当前目录下的target会生成相应的tar包文件,如下:

3.6 编译Ranger遇到的问题

3.6.1 exec failonerror="true" executable="python

  问题描述:

[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

  如图:

  

  解决方法:这里需要检查是否编译的机器是否安装了git,安装的是否是python2,不能安装python3。

安装git
$ yum -y install git 在shell界面直接运行python,看是python2或python3。python3则需要卸载
$ yum-y remove python3 没有python2则需要安装
$ yum -y install python2

4. Ranger-admin安装部署

  安装ranger-admin的机器可以不在Hadoop集群内部,可以是随便一台。

4.1 准备

4.1.1 检测是否安装python2

# python
Python 2.7. (default, Aug , ::)
[GCC 4.8. (Red Hat 4.8.-)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 如果没有检测到python2,则执行下面的命令
# yum -y install python

4.1.2 postgres数据库安装以及下载驱动包

  请自行百度安装,在postgres安装目录 data下修改pg_hba.conf文件,使postgres可以被远程服务器访问,修改为如下:

# Allow replication connections from localhost, by a user with the
# replication privilege.
#host replication all 127.0.0.1/ md5
#host replication all ::/ md5
host all all 0.0.0.0/ md5

  从maven源库下载,https://repo1.maven.org/maven2/org/postgresql/postgresql/42.2.8/

  把postgresql-42.2.8.jar下载,并创建 /usr/share/java/ 目录,最后转移到该目录下

# wget https://repo1.maven.org/maven2/org/postgresql/postgresql/42.2.8/postgresql-42.2.8.jar
# mkdir -p /usr/share/java
# mv postgresql-42.2..jar /usr/share/java/

4.2 解压ranger-admin软件包

# pwd
/opt/app/apache-ranger-2.0./target
# tar -zxvf ranger-2.0.-admin.tar.gz

4.3 修改install.properties文件

# pwd
/opt/app/apache-ranger-2.0./target/ranger-2.0.-admin
# vim install.properties

  修改install.properties文件,这里使用的数据库是postgres,不安装solr服务

)数据库配置
DB_FLAVOR=POSTGRES #指明使用数据库类型
SQL_CONNECTOR_JAR=/usr/share/java/postgresql-42.2..jar #数据库连接驱动
db_root_user=postgres #数据库root用户名
db_root_password=postgres #数据库主机
db_host=192.168.1.33: #数据库密码 # 以下三个属性是用于设置ranger数据库的
db_name=ranger #数据库名
db_user=postgres #管理该数据库用户
db_password=postgres #密码 # 不需要保存,为空,否则生成的数据库密码为'_'
cred_keystore_filename= ) 审计日志, 如果没有安装solr,对应的属性值为空即可
audit_store= audit_solr_urls=
audit_solr_user=
audit_solr_password=
audit_solr_zookeepers= )策略管理配置,配置ip和端口,默认即可
policymgr_external_url=http://localhost:6080 ) 配置hadoop集群的core-site.xml文件,把core-site.xml文件拷贝到该目录
hadoop_conf=/etc/hadoop/conf ) rangerAdmin、rangerTagSync、rangerUsersync、keyadmin密码配置。默认为空,可以不配,对应的内部组件该属性也要为空
rangerAdmin_password=
rangerTagsync_password=
rangerUsersync_password=
keyadmin_password=

4.4 初始化ranger-admin

# pwd
/opt/frame-tools/apache-ranger-2.0./target/ranger-2.0.-admin
# ./setup.sh

  初始化结果如下则成功:

  接着,运行set_globals.sh

# ./set_globals.sh
usermod: no changes
[// ::]: [I] Soft linking /etc/ranger/admin/conf to ews/webapp/WEB-INF/classes/conf

4.5 启动ranger-admin

# ranger-admin start
或者
# ./ews/ranger-admin-services.sh start

  Ranger的默认端口是6080,如图,则表明程序正常启动

  查看Ranger Admin Server运行的日志情况,日志路径默认为 ews/log , 软链接到 /var/log/admin ,如下:

  Ranger Admin Server的具体配置文件为 ranger-admin-site.xml ,如下:

  浏览器连接测试:http://192.168.1.10:6080,登录界面用户名和密码为:admin/admin,登录进去界面如下:

5. Ranger-usersync安装部署

5.1 解压ranger-usersync软件包

# pwd
/opt/frame-tools/apache-ranger-2.0./target
# tar -zxvf ranger-2.0.-usersync.tar.gz

5.2 修改install.property文件

# pwd
/opt/app/apache-ranger-2.0./target/ranger-2.0.-usersync
# vim install.properties 配置ranger admin的地址
POLICY_MGR_URL = http://localhost:6080 同步源系统类型
SYNC_SOURCE = unix 同步间隔时间
SYNC_INTERVAL = usersync程序运行的用户和用户组
unix_user=usersync
unix_group=usersync 修改rangerusersync用户的密码。注意,此密码应与Ranger admin中install.properties的rangerusersync_password相同。此处可以为空,同样Ranger admin的也要为空
rangerUsersync_password= 配置hadoop的core-site.xml路径
hadoop_conf=/etc/hadoop/conf 配置usersync的log路径
logdir=logs

5.3 初始化ranger-usersync

# pwd
/opt/app/apache-ranger-2.0./target/ranger-2.0.-usersync
# ./setup.sh

  执行结果:

 

5.4 启动ranger-usersync

# ranger-usersync start

# pwd
/opt/frame-tools/apache-ranger-2.0./target/ranger-2.0.-usersync
# ./ranger-usersync-services.sh start

  验证是否安装成功,如图则成功:

总结

【参考资料】

https://yaooqinn.github.io/spark-authorizer/docs/install_plugin.html

https://github.com/yaooqinn/spark-ranger

https://blog.csdn.net/sudaxhh/article/details/52135184

https://blog.csdn.net/w609392362/article/details/89959445

https://www.cnblogs.com/xiaolang8762400/p/7449489.html

https://help.aliyun.com/document_detail/66411.html

https://www.cnblogs.com/yjt1993/p/11837398.html

https://www.lagou.com/lgeduarticle/7838.html

https://www.jianshu.com/p/d0bf6e77bb8f

https://www.cnblogs.com/taojietaoge/p/10808534.html

https://www.cnblogs.com/jpfss/p/11021948.html Linux下LDAP统一认证解决方案

Ranger安装部署的更多相关文章

  1. Apache Ranger安装部署

    1.概述 Apache Ranger提供了一个集中式的安全管理框架,用户可以通过操作Ranger Admin页面来配置各种策略,从而实现对Hadoop生成组件,比如HDFS.YARN.Hive.HBa ...

  2. Ranger安装部署 - solr安装

    1. 概述 Lucene是一个Java语言编写的利用倒排原理实现的文本检索类库: Solr是以Lucene为基础实现的文本检索应用服务.Solr部署方式有单机方式.多机Master-Slaver方法. ...

  3. Apache Ranger 编译安装部署

    1. 概述 Apache Ranger是大数据领域的一个集中式安全管理框架,目的是通过制定策略(policies)实现对Hadoop组件的集中式安全管理.用户可以通过Ranger实现对集群中数据的安全 ...

  4. Oracle安装部署,版本升级,应用补丁快速参考

    一.Oracle安装部署 1.1 单机环境 1.2 Oracle RAC环境 1.3 Oracle DataGuard环境 1.4 主机双机 1.5 客户端部署 二.Oracle版本升级 2.1 单机 ...

  5. KVM安装部署

    KVM安装部署 公司开始部署KVM,KVM的全称是kernel base virtual machine,对KVM虚拟化技术研究了一段时间, KVM是基于硬件的完全虚拟化,跟vmware.xen.hy ...

  6. Linux平台oracle 11g单实例 + ASM存储 安装部署 快速参考

    操作环境:Citrix虚拟化环境中申请一个Linux6.4主机(模板)目标:创建单机11g + ASM存储 数据库 1. 主机准备 2. 创建ORACLE 用户和组成员 3. 创建以下目录并赋予对应权 ...

  7. 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署

    少啰嗦,直接装 看过上一篇分布式文件系统 - FastDFS 简单了解一下的朋友应该知道,本次安装是使用目前余庆老师开源的最新 V5.05 版本,是余庆老师放在 Github 上的,和目前你能在网络上 ...

  8. C# winform安装部署(转载)

    c# winform 程序打包部署 核心总结: 1.建议在完成的要打包的项目外,另建解决方案建立安装部署项目(而不是在同一个解决方案内新建),在解决方案上右击-〉添加-〉现有项目-〉选择你要打包的项目 ...

  9. Ubuntu14.04 Django Mysql安装部署全过程

    Ubuntu14.04 Django Mysql安装部署全过程   一.简要步骤.(阿里云Ubuntu14.04) Python安装 Django Mysql的安装与配置 记录一下我的部署过程,也方便 ...

随机推荐

  1. linux 把nginx加入到系统服务的方法

    linux 把nginx加入到系统服务的方法一.首先写一个shell脚本,脚本名称:nginx<pre>#! /bin/bash# chkconfig: 35 85 15 # descri ...

  2. Spring Initializr生成的demo测试404错误

    体验Spring Initializr生成的spring boot工程,启动成功, 目录结构如下: 添加了一个简单的controller后,启动成功但访问报404错误: 原因: springboot默 ...

  3. [转帖]Linux超级用户root口令忘记怎么办?

    Linux超级用户root口令忘记怎么办? 2010-05-10 12:15:00 monkey_d_meng 阅读数 5535  收藏 更多 分类专栏: Linux   版权声明:本文为博主原创文章 ...

  4. [NOIP2016]天天爱跑步-题解

    题面传送门 解答 设第\(j\)号玩家在\(V_j\)时刻出发. 弱化问题:如果树退化成了一条链.则在\(j\)处的观察员能观察到的\(i\)号玩家当且仅当 \[ i玩家经过j,且 \begin{ca ...

  5. day02——while、字符串格式化、运算符、编码初识

    day02 while--关键字(死循环) 格式:while 条件: ​ 循环体 print(1) while True: print("痒") print("鸡你太美& ...

  6. 深度学习-CNN+RNN笔记

    以下叙述只是简单的叙述,CNN+RNN(LSTM,GRU)的应用相关文章还很多,而且研究的方向不仅仅是下文提到的1. CNN 特征提取,用于RNN语句生成图片标注.2. RNN特征提取用于CNN内容分 ...

  7. QueryDSL-JPA

    QueryDSL-JPA QueryDSL简介 官网 1 QueryDSL仅仅是一个通用的查询框架,专注于通过Java API构建类型安全的SQL查询. 2 Querydsl可以通过一组通用的查询AP ...

  8. poi读取excel的列和删除列

    (各自根据具体的poi版本进行相应的替换即可) package com.br.loan.strategy.common.utils; import lombok.extern.slf4j.Slf4j; ...

  9. docker实战 (3) 常规配置

    本节会持续更新,在项目实战中遇到的docker配置都会更新进来 docker常用命令: docker 介绍: what: 是什么 why: 为什么用 how: 怎么用 docker 特点: 轻量级,可 ...

  10. 深入理解jvm--性能监控工具

    1.jvm监控工具介绍 1.1.jconsole JConsole是一个基于JMX的GUI工具,用于连接正在运行的JVM,不过此JVM需要使用可管理的模式启动. 1.2.启动jconsole 通过JD ...