当前位置: 首页 > news >正文

Hadoop学习笔记(HDP)-Part.13 安装Ranger

目录
Part.01 关于HDP
Part.02 核心组件原理
Part.03 资源规划
Part.04 基础环境配置
Part.05 Yum源配置
Part.06 安装OracleJDK
Part.07 安装MySQL
Part.08 部署Ambari集群
Part.09 安装OpenLDAP
Part.10 创建集群
Part.11 安装Kerberos
Part.12 安装HDFS
Part.13 安装Ranger
Part.14 安装YARN+MR
Part.15 安装HIVE
Part.16 安装HBase
Part.17 安装Spark2
Part.18 安装Flink
Part.19 安装Kafka
Part.20 安装Flume

十三、安装Ranger

1.安装服务

(1)Choose Services

在这里插入图片描述

(2)Assign Masters

在这里插入图片描述

(3)Assign Slaves and Clients

选择不安装Ranger Tagsync
在这里插入图片描述

(4)Customize Services

  • 设置RANGER ADMIN
    DB FLAVOR:选择MySQL,依据ambari使用的数据库来定
    Ranger DB name:设置ranger在数据库中的DB,默认ranger
    Ranger DB host:hdp01.hdp.com,选择安装MySQL的主机名
    Ranger DB username:设置ranger用户名,默认rangeradmin
    Ranger DB password:设置ranger密码,此处设置lnyd@LNsy115
    JDBC connect string for a Ranger database:自动生成
    DBA username:填入数据库连接用户名,默认root
    DBA password:填入数据库连接密码,此处设置lnyd@LNsy115
    JDBC connect string:数据库连接,前面的信息填写好后会自动生成
    在这里插入图片描述
    在这里插入图片描述
    在hdp01上设置ambari的MySQL JDBC
ambari-server setup --jdbc-db=mysql --jdbc-driver=/opt/mysql-connector-java-5.1.49.jar

在这里插入图片描述
然后在ambari界面点击“TEST CONNECTION”进行测试

  • 设置RANGER USER INFO
    Sync Source:选择“LDAP/AD”
    子选项卡:COMMON CONFIGS
    LDAP/AD URL:ldap://192.168.111.222:389
    Bind User:cn=admin,dc=hdp315,dc=com
    Bind User Password:设置为lnyd@LNsy115
    在这里插入图片描述
    子选项卡:USER CONFIGS
    Username Attribute:uid
    User Object Class:posixAccount
    User Search Base:ou=People,dc=hdp315,dc=com
    User Search Filter:cn=*
    User Search Scope:sub
    User Group Name Attribute:memberUid
    在这里插入图片描述
    子选项卡:GROUP CONFIGS
    Group Member Attribute:memberUid(对应template.ldif中的memberUid属性)
    Group Name Attribute:cn
    Group Object Class:posixGroup
    Group Search Base:ou=Group,dc=hdp315,dc=com
    Group Search Filter:cn=*
    在这里插入图片描述
  • 设置RANGER AUDIT
    未安装solr,关闭向Solr审计功能;将审计日志存储到HDFS
    在这里插入图片描述
  • 设置ADVANCED
    此处的用户密码统一设置为lnyd@LNsy115
    ADMIN Settings中的Ldap Base DN改为dc=hdp315,dc=com
    Ranger Settings中的External URL设置为http://hdp02.hdp.com:6080,此处设置为hdp01即可,不应该设置为192.168.111.222的vIP,否在调用相关URL时,会使用principal:HTTP/192.168.111.222@HDP315.COM,因为没有相关账号而报错401
    在这里插入图片描述

(5)Review

在这里插入图片描述

(6)Install,Start and Test

在这里插入图片描述

(7)Summary

在这里插入图片描述

2.安装plugin

在CONFIGS->RANGER PLUGIN中,启用对应服务的Plugin
在这里插入图片描述
启用Plugin后,对应的服务(hdfs)重启

3.测试

(1)用户同步测试

在OpenLDAP上新建测试账号tenant2

ldapadd -x -w "lnyd@LNsy115" -D "cn=admin,dc=hdp315,dc=com" -f /root/template.ldif

在这里插入图片描述
在ambari上重启UserSync服务,以重新同步(正常会周期性同步,为了即时同步,可重启该服务)
在这里插入图片描述
登录Ranger界面,http://192.168.111.201:6080,查看用户,确认OpenLDAP账号已经同步至Ranger上
在这里插入图片描述

(2)权限测试

以tenant1和tenant2为测试对象,设置tenant1在hdfs上的目录为/testhdfs/tenant1,tenant2在hdfs上的目录为/testhdfs/tenant2,在Ranger上未设置任何权限策略的情况下
先以hdfs管理员账号nn/hdp01.hdp.com@HDP315.COM登录kdc,然后创建对应的目录和赋权

kinit -kt /etc/security/keytabs/nn.service.keytab nn/hdp01.hdp.com@HDP315.COM
hdfs dfs -mkdir -p /testhdfs/tenant1
hdfs dfs -mkdir -p /testhdfs/tenant2
hdfs dfs -chmod 777 /testhdfs/tenant1
hdfs dfs -chmod 777 /testhdfs/tenant2
hdfs dfs -ls /testhdfs

在这里插入图片描述
LDAP上已经有tenant1和tenant2两个账号,还需要在kerberos中同步建立好对应的账号

kadmin.local
addprinc -randkey tenant1
addprinc -randkey tenant2
ktadd -kt /root/keytab/tenant1.keytab tenant1
ktadd -kt /root/keytab/tenant2.keytab tenant2

分别以tenant1和tenant2账号登录kdc后,上传测试文件到自身的目录下

kinit -kt /root/keytab/tenant1.keytab tenant1
hdfs dfs -put /root/file1 /testhdfs/tenant1/
hdfs dfs -ls /testhdfs/tenant1
kdestroy
kinit -kt /root/keytab/tenant2.keytab tenant2
hdfs dfs -put /root/file2 /testhdfs/tenant2/
hdfs dfs -ls /testhdfs/tenant2

在这里插入图片描述
分别用两个账号查看对方目录下的文件内容,目前是以hdfs自身的权限控制为准,即777权限,因此可以查看

kinit -kt /root/keytab/tenant1.keytab tenant1
hdfs dfs -cat /testhdfs/tenant2/file2
kdestroy
kinit -kt /root/keytab/tenant2.keytab tenant2
hdfs dfs -cat /testhdfs/tenant1/file1

在这里插入图片描述
在Ranger上添加策略
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设置完成后,再次分别以tenant1和tenant2登录并查看权限情况

kinit -kt /root/keytab/tenant1.keytab tenant1
hdfs dfs -cat /testhdfs/tenant1/file1
hdfs dfs -cat /testhdfs/tenant2/file2
kinit -kt /root/keytab/tenant2.keytab tenant2
hdfs dfs -cat /testhdfs/tenant1/file1
hdfs dfs -cat /testhdfs/tenant2/file2

在这里插入图片描述

说明权限已经生效,账号仅能查看自身目录下的文件,其他目录权限已被Ranger锁死

(3)联合授权

Ranger为HDFS提供联合授权模型:

  • 用于HDFS的Ranger插件检查Ranger策略,如果存在策略,则授予用户访问权限。
  • 如果Ranger中不存在策略,则Ranger将默认使用HDFS(POSIX或HDFS ACL)中的本机权限模型。
    联合模型适用于Ranger中的HDFS和Yarn服务。对于其他服务,例如Hive或HBase,Ranger作为唯一授权者运行,这意味着只有Ranger策略生效。
    在HDFS中,CONFIGS->ADVANCED->Advanced ranger-hdfs-security中设置
    xasecure.add-hadoop-authorization=true,表示启用联合授权,即如果不存在权限,则由hdfs权限控制;false表示禁用联合授权,hdfs的权限不再生效,而是仅有Ranger来控制。
    在这里插入图片描述

配置完成后,重启hdfs服务
禁用Ranger上的tenant1策略,然后用tenant1和tenant2账号分别查看,因为/testhdfs/tenant1上没有策略,虽然hdfs权限为777,但因为非联合授权,因此仍被Ranger拒绝访问;而/testhdfs/tenant2在Ranger有策略控制,因此tenant2仍有权限查看
在这里插入图片描述

(4)查看审计日志

配置审计日志在hdfs上存储,路径为hdfs://hdp315/ranger/audit,将所有租户的执行行为进行记录

kinit -kt /etc/security/keytabs/nn.service.keytab nn/hdp01.hdp.com@HDP315.COM
hdfs dfs -cat /ranger/audit/hdfs/20230303/hdfs_ranger_audit_hdp02.hdp.com.1.log

在这里插入图片描述

4.启用HA

Ambari上启用Ranger HA,需要提前准备好负载均衡器,ambari上只是在另外一台服务器上配置好Ranger,实现两台的高可用关系,但前面的负载不是Ambari来负责管理。前面的负载采用KeepAlived+HAProxy实现。
在这里插入图片描述
复用在OpenLDAP中的KeepAlived+HAProxy

(1)配置HAProxy

在hdp04和hdp05上修改配置文件中的部分内容,/etc/haproxy/haproxy.cfg

#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend  tcp_389_openldapbind *:389mode tcpstats uri /haproxy?statsdefault_backend  tcp_389_openldapfrontend  http_6080_rangerbind *:6080http-request set-header X-Forwarded-Proto httpstats uri /haproxy?statsdefault_backend  http_6080_ranger#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend tcp_389_openldapmode tcpbalance     roundrobinserver server1 hdp01.hdp.com:389 check weight 100server server2 hdp02.hdp.com:389 check weight 1backend http_6080_rangermode httpbalance     roundrobincookie LB insertserver  server1 hdp01.hdp.com:6080 maxconn 200 weight 10 cookie 1 check inter 5000 rise 3 fall 3server  server2 hdp02.hdp.com:6080 maxconn 200 weight 10 cookie 2 check inter 5000 rise 3 fall 3

启动服务

systemctl restart haproxy
systemctl status haproyx

(2)Ambari上启用HA

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
确认状态
在这里插入图片描述

相关文章:

  • 【开源】基于Vue+SpringBoot的数据可视化的智慧河南大屏
  • less 笔记
  • 线程池,及7大参数,4大拒绝策略详解
  • 实施工程师运维工程师面试题
  • QT 中 QProgressDialog 进度条窗口 备查
  • 网上选课系统源码(Java)
  • Springboot:kafka运行成功,报错InvalidTopicException
  • 【OpenGauss源码学习 —— (VecToRow)算子】
  • Mybatis XML 配置文件
  • 信号可靠性剖析
  • JVM之四种引用类型(五)
  • 使用 OpenFunction 在任何基础设施上运行 Serverless 工作负载
  • Python网络爬虫环境的安装指南
  • ES6中 对象合并
  • C++作业6
  • E-HPC支持多队列管理和自动伸缩
  • Intervention/image 图片处理扩展包的安装和使用
  • javascript从右向左截取指定位数字符的3种方法
  • Java教程_软件开发基础
  • PAT A1017 优先队列
  • SpringBoot 实战 (三) | 配置文件详解
  • v-if和v-for连用出现的问题
  • Xmanager 远程桌面 CentOS 7
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 从tcpdump抓包看TCP/IP协议
  • 工程优化暨babel升级小记
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 技术发展面试
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 微信公众号开发小记——5.python微信红包
  • 一个SAP顾问在美国的这些年
  • 通过调用文摘列表API获取文摘
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​Spring Boot 分片上传文件
  • ​水经微图Web1.5.0版即将上线
  • #162 (Div. 2)
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #mysql 8.0 踩坑日记
  • (function(){})()的分步解析
  • (LeetCode 49)Anagrams
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (层次遍历)104. 二叉树的最大深度
  • (黑马C++)L06 重载与继承
  • (十一)图像的罗伯特梯度锐化
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (转)Sublime Text3配置Lua运行环境
  • *p++,*(p++),*++p,(*p)++区别?
  • ./和../以及/和~之间的区别
  • .net 无限分类
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • @EnableAsync和@Async开始异步任务支持
  • @TableLogic注解说明,以及对增删改查的影响