Ranger 2.0 要求对应的 Hadoop 为 3.x 以上,Hive 为 3.x 以上版本,JDK 为 1.8 以上版本。Hadoop 及 Hive 等需开启用户认证功能,本文基于开启 Kerberos 安全认证的 Hadoop 和 Hive 环境。
注:本文中所涉及的Ranger相关组件均安装在hadoop102节点。
Ranger 的启动和运行需使用特定的用户,故须在 Ranger 所在节点创建所需系统用户并在Kerberos 中创建所需主体。
A、创建 ranger 系统用户
[root@hadoop102 ~]# useradd ranger -G hadoop
[root@hadoop102 ~]# echo ranger | passwd --stdin ranger
B、检查 HTTP 主体是否正常 (该主体在 Hadoop 开启 Kerberos 时已创建)
使用keytab文件认证HTTP主体
[root@hadoop102 ~]# kinit -kt /etc/security/keytab/spnego.service.keytab HTTP/hadoop102@EXAMPLE.COM
查看认证状态,如下图所示,即为正常
[root@hadoop102 ~]# klist
注销认证
[root@hadoop102 ~]# kdestroy
C、创建 rangeradmin 主体
创建主体
[root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey rangeradmin/hadoop102"
生成 keytab 文件
[root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/rangeradmin.keytab rangeradmin/hadoop102"
修改 keytab 文件所有者
[root@hadoop102 ~]# chown ranger:ranger /etc/security/keytab/rangeradmin.keytab
D、创建 rangerlookup 主体
创建主体
[root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey rangerlookup/hadoop102"
生成 keytab 文件
[root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/rangerlookup.keytab rangerlookup/hadoop102"
修改 keytab 文件所有者
[root@hadoop102 ~]# chown ranger:ranger /etc/security/keytab/rangerlookup.keytab
E、创建 rangerusersync 主体
创建主体
[root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey rangerusersync/hadoop102"
生成 keytab 文件
[root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/rangerusersync.keytab rangerusersync/hadoop102"
修改 keytab 文件所有者
[root@hadoop102 ~]# chown ranger:ranger /etc/security/keytab/rangerusersync.keytab
[root@hadoop102 ~]# mysql -uroot -p000000
在MySQL数据库中创建Ranger存储数据的数据库
mysql> create database ranger;
更改 mysql 密码策略,为了可以采用比较简单的密码
mysql> set global validate_password_length=4;
mysql> set global validate_password_policy=0;
创建用户
mysql> grant all privileges on ranger.* to ranger@'%' identified by 'ranger';
A、在 hadoop102 的 /opt/module 路径上创建一个 ranger
[root@hadoop102 ~]# mkdir /opt/module/ranger
B、解压软件
[root@hadoop102 software]# tar -zxvf ranger-2.0.0-admin.tar.gz -C /opt/module/ranger
C、进入/opt/module/ranger/ranger-2.0.0-admin路径,对install.properties配置
[root@hadoop102 ranger-2.0.0-admin]# vim install.properties
修改以下配置内容:
#mysql驱动
SQL_CONNECTOR_JAR=/opt/software/mysql-connector-java-5.1.48.jar
#mysql的主机名和root用户的用户名密码
db_root_user=root
db_root_password=000000
db_host=hadoop102
#ranger需要的数据库名和用户信息,和2.2.1创建的信息要一一对应
db_name=ranger
db_user=ranger
db_password=ranger
#Ranger各组件的admin用户密码
rangerAdmin_password=atguigu123
rangerTagsync_password=atguigu123
rangerUsersync_password=atguigu123
keyadmin_password=atguigu123
#ranger存储审计日志的路径,默认为solr,这里为了方便暂不设置
audit_store=
#策略管理器的url,rangeradmin安装在哪台机器,主机名就为对应的主机名
policymgr_external_url=http://hadoop102:6080
#启动ranger admin进程的linux用户信息
unix_user=ranger
unix_user_pwd=ranger
unix_group=ranger
#Kerberos相关配置
spnego_principal=HTTP/hadoop102@EXAMPLE.COM
spnego_keytab=/etc/security/keytab/spnego.service.keytab
admin_principal=rangeradmin/hadoop102@EXAMPLE.COM
admin_keytab=/etc/security/keytab/rangeradmin.keytab
lookup_principal=rangerlookup/hadoop102@EXAMPLE.COM
lookup_keytab=/etc/security/keytab/rangerlookup.keytab
hadoop_conf=/opt/module/hadoop-3.1.3/etc/hadoop
D、在 /opt/module/ranger/ranger-2.0.0-admin 目录下执行安装脚本
[root@hadoop102 ranger-2.0.0-admin]# ./setup.sh
出现以下信息,说明安装完成
2020-04-30 13:58:18,051 [I] Ranger all admins default password change request processed successfully..
Installation of Ranger PolicyManager Web Application is completed.
E、修改 /opt/module/ranger/ranger-2.0.0-admin/conf/ranger-admin-site.xml 配置文件中的以下属性
[root@hadoop102 ranger-2.0.0-admin]# vim /opt/module/ranger/ranger-2.0.0-admin/conf/ranger-admin-site.xml
增加如下参数
<property>
<name>ranger.jpa.jdbc.passwordname>
<value>rangervalue>
<description />
property>
<property>
<name>ranger.service.hostname>
<value>hadoop102value>
property>
A、启动 ranger-admin (以ranger用户启动)
[root@hadoop102 ranger-2.0.0-admin]# sudo -i -u ranger ranger-admin start
Starting Apache Ranger Admin Service
Apache Ranger Admin Service with pid 7058 has started.
ranger-admin在安装时已经配设置为开机自启动,因此之后无需再手动启动!
B、查看启动后的进程
[root@hadoop102 ranger-2.0.0-admin]# jps
7058 EmbeddedServer
8132 Jps
C、访问 Ranger 的 WebUI,地址为:http://hadoop102:6080
D、停止ranger (此处不用执行)
[root@hadoop102 ranger-2.0.0-admin]# sudo -i -u ranger ranger-admin stop
默认可以使用用户名:admin,密码为之前配置的 fancy123 进行登录!登录后界面如下: