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

Hdoop学习笔记(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

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

相关文章:

Hdoop学习笔记(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 …...

Spring AOP记录接口访问日志

Spring AOP记录接口访问日志 介绍应用范围组成通知(Advice)连接点(JoinPoint)切点(Pointcut)切面(Aspect)引入(Introduction)织入(Weaving&#x…...

分享89个节日PPT,总有一款适合您

分享89个节日PPT,总有一款适合您 89个节日PPT下载链接:https://pan.baidu.com/s/1j6Yj-7UCcUyV4V_S_eGjpQ?pwd6666 提取码:6666 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易…...

PostgreSQL日志中的SQL记录时机 —— log_statement 和 log_min_duration_statement

最近跟朋友讨论到PostgreSQL日志中的SQL记录时机,研究了下log_statement 和 log_min_duration_statement两个参数,记录一下。 一、 参数简介 1. log_statement ① 作用 控制记录SQL的类型,可选值为: none:关闭&…...

Agent举例与应用

什么是Agent OpenAI 应用研究主管 Lilian Weng 在一篇长文中提出了 Agent LLM(大型语言模型)记忆规划技能工具使用这一概念,并详细解释了Agent的每个模块的功能。她对Agent未来的应用前景充满信心,但也表明到挑战无处不在。 现…...

CentOS 7 配置tomcat

简介 Tomcat是一个使用Java编写的开源Web应用服务器,是由Apache Software Foundation管理的一个项目。它是一个轻量级的应用服务器,可以下载、安装和使用,而且还提供了许多高级功能,例如支持Java Servlet、JavaServer Pages (JSP)和JavaServer Faces (JSF) 等JavaEE技术,…...

如何优雅的关闭一个IIS站点

众所周知,当我们使用IIS的时候,在使用负载均衡的情况下,想停掉一个站点,通常会点击Sites(网站)中的Stop(停止)来停止一个站点。但是这样做,会带来一个问题,当…...

弱网模拟工具

一、背景 一个人晚上在家通过 Wi-Fi 上网,在线电影播放基本流畅,可一旦在晚间用网高峰期打视频电话就画面糊,这时不仅可能带宽受限了,还可能有较高的丢包率。与有线网络通信相比,无线网络通信受环境影响会更大&#x…...

Leetcode 第 110 场双周赛 Problem D 2809. 使数组和小于等于 x 的最少时间(DP+贪心+正难则反)

Leetcode 第 110 场双周赛 Problem D 2809. 使数组和小于等于 x 的最少时间&#xff08;DP 好题&#xff09;题目 给你两个长度相等下标从 0 开始的整数数组 nums1 和 nums2 。每一秒&#xff0c;对于所有下标 0 < i < nums1.length &#xff0c;nums1[i] 的值都增加 num…...

已知数组A[1..n]中元素类型为非负整数,设计算法将其调整为左右两部分,左边所有为奇数,右边所有为偶数,并要求算法的时间复杂度为O(n)

//左边奇数右边偶数 void Swap(int* a, int* b) {int tmp *b;*b *a;*a tmp; } void LeftRight(int arr[],int n) {int i 0;int j n - 1;while(i<j){if (arr[i] % 2 0 && arr[j] % 2 1) {Swap(&arr[i], &arr[j]);i;j--;}else if (arr[i] % 2 1 &…...

ssm+vue的罪犯信息管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频&#xff1a; ssmvue的罪犯信息管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;ssm vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…...

Java/Android 各类型数据构造和各类型数据解析

Java/Android 各类型数据构造和各类型数据解析 1.如何构造/解析{"key":"value","key":"value","key":"value"}jsonString1)json解析2)fastjson解析3)Gson解析4)遍历key值解析2.如何构造/解析[{"key&q…...

Linux系统---环境变量+内核进程调度队列(选学)

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C/C》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、环境变量 1.基本概念 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数&#xff0c…...

Kubernetes 使用插件扩展 kubectl

例子演示 编写 kubectl-foo &#xff0c;拷贝至 /usr/local/bin/ #!/bin/bash# 可选的参数处理 if [[ "$1" "version" ]] thenecho "1.0.0"exit 0 fi# 可选的参数处理 if [[ "$1" "config" ]] thenecho $KUBECONFIGexit…...

前端面试题09

74、定义类的方法有哪些 在JavaScript中&#xff0c;定义类的方法有以下几种方式&#xff1a; 1.使用函数声明&#xff1a; function MyClass() {// constructor } MyClass.prototype.methodName function() {// method body };2.使用类的方法缩写&#xff08;ES6引入&…...

网站更换IP的四大注意事项

1.对网站当中的数据进行备份 网站更换IP时可以将页面的数据库文件和站点文件通过下载工具在本地完成备份。 2.更换解析域名 从站点域名管理后台当中更换域名地址&#xff0c;改为新的IP地址。 3.确保IP安全 在用户更换IP前一定要确定IP是否安全&#xff0c;一旦IP存在不良…...

策略模式与简单工厂模式:终结if-else混乱,让代码更清爽

阅读建议 嗨&#xff0c;伙计&#xff01;刷到这篇文章咱们就是有缘人&#xff0c;在阅读这篇文章前我有一些建议&#xff1a; 本篇文章大概4500多字&#xff0c;预计阅读时间长需要5分钟。本篇文章的实战性、理论性较强&#xff0c;是一篇质量分数较高的技术干货文章&#x…...

TCP三次握手过程

什么是TCP tcp是一个面向连接的、可靠的、基于字节流的传输层通信协议 面向连接&#xff1a;TCP连接是一对一的&#xff0c;不能实现一对多或多对一&#xff0c;TCP在通信前要首先建立连接&#xff0c;连接成功后才能开始进行通信可靠的&#xff1a;TCP连接要保证通信过程的可靠…...

04-配置远程仓库的SSH免密登陆

配置SSH免密登录 配置步骤 创建好的远程仓库也可以使用SSH的方式进行访问,但如果没有配置公钥会有警告 第一步: 删除用户家目录下的.ssh目录,如果没有该目录或者该目录下已经有密钥了就不用执行该操作 #进入当前用户的家目录,删除.ssh 目录 LayneLAPTOP-Layne MINGW64 ~ $ r…...

【中文编码】利用bert-base-chinese中的Tokenizer实现中文编码嵌入

最近接触文本处理&#xff0c;查询了一些资料&#xff0c;记录一下中文文本编码的处理方法吧。   先下载模型和词表&#xff1a;bert-base-chinese镜像下载   如下图示&#xff0c;下载好的以下文件均存放在 bert-base-chinese 文件夹下    1. 词编码嵌入简介 按我通俗的…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】&#xff0c;注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录&#xff08;即exe所在文件夹&#xff09;加入系统变量…...