Ranger安装

1 Ranger安装

这里涉及到3个插件的安装,分别是ranger-hdfs、ranger-hive、ranger-presto,下面将详细叙述安装过程。

1.1 配置RDBMS

首先ranger依赖关系型数据库存储元数据等信息,这里选用MySQL作为元数据存储介质,使用的MySQL版本是8。

RDMS用于存储授权策略,存储Ranger用户/组,存储审核日志。这里使用MySQL作为元数据的存储介质,使用如下命令进行创建db、user、password等:

CREATE DATABASE ranger;ALTER DATABASE ranger CHARACTER SET utf8mb4;CREATE USER 'ranger'@'%' IDENTIFIED BY 'MySQL_123456';GRANT ALL PRIVILEGES ON ranger.* TO 'ranger'@'%' IDENTIFIED BY 'MySQL_123456';

-- 如果是MySQL 8使用如下命令

GRANT ALL PRIVILEGES ON ranger.* TO 'ranger'@'%'; FLUSH PRIVILEGES;

1.2 配置MySQL connector

连接MySQL需要用的driver驱动,需要手动下载jar包。

创建 /usr/share/java/ 目录,把MySQL connector下载到这个目录:

mkdir /usr/share/java

cd /usr/share/java/

wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.30/mysql-connector-java-8.0.30.jar

ln -s mysql-connector-java-8.0.30.jar mysql-connector-java.jar

1.3 Ranger-admin安装部署

解压编译好的ranger-2.3.0-admin.tar.gz:

$ tar -zxvf ranger-2.3.0-admin.tar.gz -C /opt/software/

$ cd /opt/software/ranger-2.3.0-admin/

修改install.properties文件,这里不使用审计功能,因为需要使用solr等额外组件:

$ vim install.properties

PYTHON_COMMAND_INVOKER=python

DB_FLAVOR=MYSQL # 指明使用数据库类型

SQL_CONNECTOR_JAR=/usr/share/java/mysql-connector-java.jar #数据库连接驱动

指定数据库root用户链接信息

db_root_user=root

db_root_password=MySQL_123456

db_host=test-hadoop001.lzzg365.com:3306

指定Ranger数据库名称及用户信息

db_name=ranger

db_user=ranger

db_password=MySQL_123456

不需要保存,为空,否则生成的数据库密码为'_'

cred_keystore_filename=

审计日志,如果没有安装solr,对应的属性值为空即可

audit_store=

audit_solr_urls=

audit_solr_user=

audit_solr_password=

audit_solr_zookeepers=

策略管理配置,配置ip和端口,默认即可

policymgr_external_url=http://schedule01:6080

配置hadoop集群的core-site.xml文件,把core-site.xml文件拷贝到该目录

hadoop_conf= /usr/hdp/3.0.1.0-187/hadoop

rangerAdmin、rangerTagSync、rangerUsersync、keyadmin密码配置。

默认为空,可以不配,对应的内部组件该属性也要为空

rangerAdmin_password=Ranger_123456

rangerTagsync_password=Ranger_123456

rangerUsersync_password=Ranger_123456

keyadmin_password=Ranger_123456

自定义日志目录

RANGER_ADMIN_LOG_DIR=/data/log/ranger-admin

执行./setup.sh脚本命令后,如果安装成功后会提示:

Installation of Ranger PolicyManager Web Application is completed.

如下图:

image.png

启动ranger-admin:
./ews/ranger-admin-services.sh start
通过jps命令查看:
image.png

通过端口查看进程是否正常启动:
netstat -lntp|grep 6080
image.png

访问地址http://schedule01:6080就可以看到ranger-admin的登录界面,如下:
image.png

登录的用户名和密码是是在install.properties里配置的,这里配置的是admin : Ranger_123456,登录成功后如下:
image.png

1.3.1 注意点

(1) 如果配置多个ranger-admin,在修改install.properties时,注意参数:
setup_mode=SeparateDBA
不需要多次初始化MySQL。
(3) 如果MySQL版本过高则需要配置如下参数,在ranger-admin安装完成后修改conf/ranger-admin-site.xml文件
<property>
<name>ranger.jpa.jdbc.url</name>
<value>jdbc:log4jdbc:mysql://schedule03:3306/ranger?allowPublicKeyRetrieval=true</value>
<description />
</property>
(3) 可以修改脚本,指定MySQL的数据库的serverTimezone参数,需要修改一下数据库相关的脚本。打开dba_script.py和db_setup.py文件,替换如下内容:
-cstring jdbc:mysql://%s/%s%s
将其全部修改为如下所示,主要是添加JDBC的serverTimezone连接参数:
-cstring jdbc:mysql://%s/%s%s?serverTimezone=Asia/Shanghai
或者在ranger-admin安装完成后修改conf/ranger-admin-site.xml文件,如下:
<property>
<name>ranger.jpa.jdbc.url</name>
<value>jdbc:log4jdbc:mysql://192.168.1.11/ranger?serverTimezone=Asia/Shanghai</value>
<description />
</property>
(4) 如果在初始化MySQL数据库时遇到如下错误:
[E] ranger_core_db_mysql.sql file import failed!
[I] Unable to create DB schema, Please drop the database and try again
2022-09-19 17:46:19,724
[E] CORE_DB_SCHEMA import failed!
解决:MySQL中设置
mysql> set global log_bin_trust_function_creators=1;
即可解决。

1.4 ranger-usersync安装部署(非必需)

安装ranger Usersync,需要使用root用户。解压在第 2 步中编译的ranger-2.3.0-usersync.tar.gz:

tar -zxvf ranger-2.3.0-usersync.tar.gz -C /opt/software/ cd /opt/software/ranger-2.3.0-usersync
编辑install.properties文件,具体内容如下所示:
$ vim install.properties

ranger_base_dir = /opt/software/ranger-2.3.0-usersync
POLICY_MGR_URL = http://schedule01:6080
unix_user=hadoop
unix_group=hadoop
rangerUsersync_password=Ranger_123456
hadoop_conf=/usr/hdp/3.0.1.0-187/hadoop/conf
CRED_KEYSTORE_FILENAME=/opt/software/ranger-2.3.0-usersync/usersync/conf/rangerusersync.jceks
AUTH_SSL_KEYSTORE_FILE=/opt/software/ranger-2.3.0-usersync/usersync/conf/cert/unixauthservice.jks
logdir=/data/log/ranger-usersync
需要使用root用户执行setup.sh脚本命令后,如果成功,会出现如图所示的结果:
[I] Successfully updated password of rangerusersync user
如下图:

image.png

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

1.4.1 注意点

如果用户没有同步,是由于默认没有开启自动同步功能,需要修改相关的参数。查看/etc/ranger/usersync/conf/ranger-ugsync-site.xml(install.properties中ranger_base_dir配置)发现ranger.usersync.enabled为false,修改为true。重启ranger-usersync,再看管理界面,已经同步成功。

<property>
<name>ranger.usersync.enabled</name>
<value>true</value>
</property>
<property>
<name>ranger.usersync.cookie.enabled</name>
<value>false</value>
</property>
验证是否安装成功,如图则成功:


image.png

image.png

1.5 ranger-hdfs安装部署

1.5.1 备份Ambari的ranger-hdfs插件

Ambari ranger HDFS插件组件使用内容替换为自定义编译的版本说明:
1、涉及到的主机有hadoop01.ecs.dftd.in、hadoop02.ecs.dftd.in
2、更换文件的目录是/usr/hdp/3.0.1.0-187/hadoop/lib
3、需要更换的文件如下:
ranger-hdfs-plugin-impl
ranger-hdfs-plugin-shim-1.1.0.3.0.1.0-187.jar
ranger-plugin-classloader-1.1.0.3.0.1.0-187.jar
这些文件需要备份,用于后面的恢复等操作。
cd /usr/hdp/3.0.1.0-187/hadoop/lib
sudo mv ranger-hdfs-plugin-impl ranger-hdfs-plugin-shim-1.1.0.3.0.1.0-187.jar ranger-plugin-classloader-1.1.0.3.0.1.0-187.jar /home/hadoop/al/ambari-ranger-hdfs-jars
1.5.2 安装ranger-hfds插件
解压编译好的ranger-2.3.0-hdfs-plugin.tar.gz:
tar -zxvf ranger-2.3.0-hdfs-plugin.tar.gz -C /opt/software/ cd /opt/software/ranger-2.3.0-hdfs-plugin
编辑install.properties文件,具体内容如下所示:
$ vim install.properties

配置多个ranger-admin保证高可用
POLICY_MGR_URL= http://schedule01:6080, http://schedule02:6080
REPOSITORY_NAME=hadoopprod
COMPONENT_INSTALL_DIR_NAME=/usr/hdp/3.0.1.0-187/hadoop/conf

启动Ranger HDFS Plugin安装,这里使用的是root用户执行安装脚本:
./enable-hdfs-plugin.sh
执行完成输出如下:


image.png

安装完毕后,需要手动替换ambari原装的ranger-hdfs插件的jar文件等,自定义ranger HDFS插件的目录是/opt/software/ranger-2.3.0-hdfs-plugin,其lib目录下的内容是替换ambari的内容
cd /usr/hdp/3.0.1.0-187/hadoop/lib
sudo cp -r /opt/software/ranger-2.3.0-hdfs-plugin/lib/* .

验证安装成功步骤:

·会发现hadoop安装目录下etc/hadoop下有ranger-hdfs的xml文件


image.png

·会发现share/hadoop/hdfs/lib 下有ranger-hdfs开头的软连接


image.png

image.png

·启动hdfs会发现/etc/ranger/hadoopdev/policycache下有策略缓存文件
image.png

·然后在ranger-admin的audit-->plugin status 查看状态,200即为安装成功


image.png

1.5.3 hdfs-site.xml参数修改

hdfs-site.xml添加如下属性:

<property>
<name>dfs.permissions</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.inode.attributes.provider.class</name>
<value>org.apache.ranger.authorization.hadoop.RangerHdfsAuthorizer</value>
</property>
<property>
<name>dfs.permissions.ContentSummary.subAccess</name>
<value>true</value>
</property>
安装完毕后需要重新hdfs启动相关进程。

1.5.4 ranger-hdfs插件配置

登录web UI后,点击HDFS plugin 添加按钮,添加服务,输入定义的服务名:hdfsprod(在配置参数时设置的,要保持一致),配置完所有的参数后,点击 Test Connection 执行成功验证是否成功。步骤如下图:
image.png

image.png

image.png

image.png

在配置参数Add New Configurations时,配置的内容如下:
dfs.nameservices : hadoopnamenodeHA
dfs.ha.namenodes.hadoopnamenodeHA : nn1,nn2
dfs.namenode.rpc-address.hadoopnamenodeHA.nn1: hadoop01.ecs.dftd.in:8020
dfs.namenode.rpc-address.hadoopnamenodeHA.nn2: hadoop02.ecs.dftd.in:8020
dfs.client.failover.proxy.provider.hadoopnamenodeHA : org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

1.6 ranger-hive安装部署
1.6.1 安装ranger-hive插件
解压编译好的ranger-2.3.0-hdfs-hive.tar.gz:
tar -zxvf ranger-2.3.0-hdfs-hive.tar.gz -C /opt/software/ cd /opt/software/ranger-2.3.0-hive-plugin
编辑install.properties文件,具体内容如下所示:
$ vim install.properties

配置多个ranger-admin保证高可用
POLICY_MGR_URL= http://schedule01:6080, http://schedule02:6080
REPOSITORY_NAME=hivedev
COMPONENT_INSTALL_DIR_NAME=/usr/hdp/3.0.0.0-1634/hive
使hive-plugin生效,执行时使用的用户是root:# ./enable-hive-plugin.sh
执行完成后结果如下图:

image.png

conf/hiveserver2-site.xml修改如下属性:
<property>
<name>hive.security.authorization.enabled</name>
<value>true</value>
</property>
<property>
<name>hive.security.authorization.manager</name>
<!—默认值是org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdConfOnlyAuthorizerFactory -->
<value>org.apache.ranger.authorization.hive.authorizer.RangerHiveAuthorizerFactory</value>
</property>
<property>
<name>hive.security.authenticator.manager</name>

<value>org.apache.hadoop.hive.ql.security.SessionStateUserAuthenticator</value>
</property>
<property>
<name>hive.conf.restricted.list</name>
<value>hive.security.authorization.enabled,hive.security.authorization.manager,hive.security.authenticator.manager</value>
</property>
<property>
<name>hive.security.authorization.sqlstd.confwhitelist</name>
<value>mapred.|hive.|mapreduce.|spark.|merge.</value>
</property>
<property>
<name>hive.security.authorization.sqlstd.confwhitelist.append</name>
<value>mapred.
|hive.|mapreduce.|spark.|merge.</value>
</property>
安装完毕后需要重启动hive相关进程。

1.6.2 配置ranger-hive插件

登录web UI后,点击HADOOP SQL添加按钮,添加服务,输入定义的服务名:hiveprod(在配置参数时设置的,要保持一致),配置完所有的参数后,点击 Test Connection 执行成功验证是否成功。步骤如下图:


image.png

image.png

1.7 ranger-presto安装

1.7.1 ranger-presto插件的安装

trino 350往后的版本对包空间名称做了更改(io.prestosql -> io.trino)。
将Ranger编译源码得到的ranger-2.3.0-presto-plugin.tar.gz上传到Presto的coordinator服务器节点。
解压编译好的ranger-2.3.0-hdfs-presto.tar.gz:
tar -zxvf ranger-2.3.0-presto-hive.tar.gz -C /opt/software/ cd /opt/software/ranger-2.3.0-presto-plugin

注意:这里使用了修改后的ranger-presto插件的jar包,需要替换的jar为
ranger-presto-plugin-2.3.0.jar
ranger-presto-plugin-shim-2.3.0.jar
所以替换相关jar包:
ranger-presto-plugin-2.3.0.jar -> /opt/software/ranger-2.3.0-presto-plugin/lib/ranger-presto-plugin-impl/ranger-presto-plugin-2.3.0.jar
ranger-presto-plugin-shim-2.3.0.jar -> /opt/software/ranger-2.3.0-presto-plugin/lib/ranger-presto-plugin-shim-2.3.0.jar

接着编辑install.properties文件,具体内容如下所示:
$ vim install.properties

配置多个ranger-admin保证高可用
POLICY_MGR_URL= http://schedule01:6080, http://schedule02:6080
REPOSITORY_NAME=prestoprod
COMPONENT_INSTALL_DIR_NAME=/opt/software/presto
虽然文档中没有提及,不设置的话,enable-presto-plugin.sh脚本执行出错
XAAUDIT.SUMMARY.ENABLE=false
使presto-plugin生效,执行脚本时使用的用户是root:
./enable-presto-plugin.sh
命令执行完成后输出如下:

image.png

脚本执行没有错误后,需要把/usr/lib/presto/plugin/ranger目录移动到/usr/lib/presto/lib/plugin目录下:
sudo /usr/lib/presto/plugin/ranger /usr/lib/presto/lib/plugin

1.7.2 修改hdfs和presto参数

(1) 修改core-site.xml文件
添加如下参数:
<property>
<name>hadoop.proxyuser.presto.groups</name>
<value> *</value>
</property>
<property>
<name>hadoop.proxyuser.presto.hosts</name>
<value> *</value>
</property>
hadoop.proxyuser.presto.groups和hadoop.proxyuser.presto.hosts参数中的presto指的是运行presto进程的unix用户。
(2) 修改presto catalog文件,一般是hive.properties文件,添加如下属性:
hive.hdfs.impersonation.enabled=true
表示presto可以模拟hdfs登录用户。
安装完毕后需要重新presto启动相关进程。

1.7.3 配置ranger-presto插件

登录web UI后,点击PRESTO添加按钮,添加服务,输入定义的服务名:prestoprod(在配置参数时设置的,要保持一致),配置完所有的参数后,点击 Test Connection 执行成功验证是否成功。步骤如下图:

image.png

image.png

如果没有认证时,参数Password必须要是empty,否则会在Test时抛出错误。
image.png

1.7.4 安装过程中的错误

如果安装过程中出现如下错误,则需要把缺失的jar包复制到install/lib/目录:
image.png

这个提示是说明commons-lang-2.6.jar没有包含org.apache.commons.lang3.StringUtils类,而这个类在jar commons-lang3中。

wget https://repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar

如果出现这个错误,该类处于Apache的commons-compress包中,把commons-compress jar包放到install/lib/目录:

image.png

wget https://repo1.maven.org/maven2/org/apache/commons/commons-compress/1.21/commons-compress-1.21.jar

参考
https://www.cnblogs.com/swordfall/p/11887317.html
https://juejin.cn/post/6844904159930482696
https://blog.51cto.com/zero01/2549450
https://jiezhi.github.io/2021/06/29/ranger-admin/
https://www.cxymm.net/article/sinat_28007043/105649662
https://blog.csdn.net/Happy_Sunshine_Boy/article/details/103369365
https://www.helloworld.net/p/2301106303
//www.greatytc.com/p/888186c38827

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容

  • 导语 Ranger是Hadoop平台的集中式安全管理框架,能够为hadoop平台组件提供细粒度的访问控制。通过Ra...
    biggeng阅读 16,265评论 0 7
  • 编译 到ranger的官网下载ranger包,我下载的是1.0.0 安装 编译好后,包在/Users/userna...
    BIGrey阅读 2,724评论 0 3
  • 一、架构 二、框架部署 2.1 准备 准备三台虚拟机,操作系统为CentOS 7.x,每台内存至少8G以上。 步骤...
    CJ21阅读 1,102评论 0 3
  • 一、介绍 1.1 什么是Ranger Apache Ranger是一个用来在Hadoop平台上进行监控,启用服务,...
    CJ21阅读 11,261评论 0 5
  • 很久没写过部署文档了,不过 Apache Ranger KMS 的手动部署较为繁琐,网上的相关资料基本都是散装的,...
    breeze_lsw阅读 5,468评论 1 2