美文网首页
Ranger安装

Ranger安装

作者: JX907 | 来源:发表于2023-06-13 16:02 被阅读0次

    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
    https://www.jianshu.com/p/888186c38827

    相关文章

      网友评论

          本文标题:Ranger安装

          本文链接:https://www.haomeiwen.com/subject/tcbcydtx.html