hadoop+ranger+kerberos页面权限配置(四)

news2024/11/15 6:56:42

一、原理介绍

  1. hdfs

    指令测试:hdfs dfs -mkdir /ranger

    原理:根据路径进行文件夹操作赋权。一旦指定文件夹权限,则该用户可以操作该文件夹及该文件夹底下的子文件夹。

  2. yarn

    指令测试:hadoop jar /home/hadoop/module/hadoop-3.2.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.2.jar pi -Dmapred.job.queue.name=default 2 2

    原理:根据队列进行赋权,被赋权的用户可以提交任务给队列执行。

  3. hive

    原理:根据数据库、表、字段进行过滤用户的权限。

  4. hbase

    原理:根据数据库、字段族、字段进行过滤用户的权限。

二、配置用户

ps:注意,配置了kerberos后,验证用户不再是验证linux用户,而是验证kerberos用户。

  1. 添加用户:有两种方式,但是无论哪种方式添加的用户,效果都一样,因为都只是用来给用户赋权,不用于其他功能。

    1)使用同步方式,如ranger-usersync插件

    2)手动创建。
    在这里插入图片描述

    ps1:User Name、First Name、Last Name用户名称,取一样的即可

    ps2:Select Role,用户权限,一般选择User
    在这里插入图片描述

三、配置hdfs

  1. 原理
    在这里插入图片描述

  2. 新增
    在这里插入图片描述

  3. 设置

    ps1:Service Name,名称为/home/hadoop/RangerHive/ranger-2.2.0-hive-plugin/inistall.propreties的REPOSITORY_NAME属性

    ps2:Username&Password,ranger-hdfs的最高权限用户

    ps3:Namenode URL,/home/hadoop/module/hadoop-3.2.2/etc/hadoop/hdfs-site.xml的dfs.namenode.rpc-address.mycluster.nn1和nn2属性,用“,”隔开
    在这里插入图片描述

  4. 测试连接
    在这里插入图片描述

  5. 测试上传功能

  6. 使用hadoop用户创建文件夹:hdfs dfs -mkdir /ranger

  7. 使用hadoop用户上传:hdfs dfs -put test.txt /ranger

    结果:上传成功

  8. 新建用户zhanzhk并且上传:hdfs dfs -put test.txt /ranger

    结果:报错put: Permission denied: user=root, access=WRITE, inode=“/ranger”:hadoop:supergroup:drwxr-xr-x

  9. 重启ranger-usersync同步用户: ranger-usersync restart

    只能同步ranger服务器的用户
    在这里插入图片描述

  10. 配置zhanzhk这个用户的权限,然后add即可 在这里插入图片描述

  11. 重新执行上传指令,成功!

  12. 策略是可以重复使用的,只要在权限里面配置不同用户即可,一般都会生产一些默认权限,如下
    在这里插入图片描述

四、配置hive

  1. 原理
    在这里插入图片描述

  2. 查看mysql相关权限

    mysql -uroot -p
    use mysql;
    SELECT host,user,Grant_priv,Super_priv FROM mysql.user;
    

在这里插入图片描述

  1. 修改mysql相关权限

    UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y';
    flush privileges;
    
  2. 连接hive查看数据

    cd /home/hadoop/module/hive
    bin/beeline -u jdbc:hive2://node10:10000/default -n root -p ffcsict123
    select * from student;
    

    错误:Error: Error while compiling statement: FAILED: HiveAccessControlException Permission denied: user [root] does not have [SELECT] privilege on [default/student/*] (state=42000,code=40000)

  3. 添加用户
    在这里插入图片描述

  4. 配置hive
    在这里插入图片描述

    配置基础信息
    在这里插入图片描述

    选中add,稍等一会,再点击编辑
    在这里插入图片描述

    点击测试
    在这里插入图片描述

  5. 连接hive查看数据

    cd /home/hadoop/module/hive
    bin/beeline -u jdbc:hive2://node10:10000/default -n root -p ffcsict123
    select * from student;
    

    显示查询成功

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K1psOpqh-1672657950955)(C:\Users\86188\AppData\Roaming\Typora\typora-user-images\image-20221109092827812.png)]

  6. 配置成功!

  7. 测试hadoop用户

    cd /home/hadoop/module/hive
    bin/beeline -u jdbc:hive2://node10:10000/default -n hadoop -p ffcsict123
    select * from student;
    

    结果:Error: Error while compiling statement: FAILED: HiveAccessControlException Permission denied: user [hadoop] does not have [SELECT] privilege on [default/student/*] (state=42000,code=40000)

  8. 配置hadoop用户的权限 在这里插入图片描述
    可以看到已经存在一些相关的权限配置策略,我们直接用即可
    在这里插入图片描述
    设置hadoop,添加读权限 在这里插入图片描述

  9. 测试hadoop用户

    cd /home/hadoop/module/hive
    bin/beeline -u jdbc:hive2://node10:10000/default -n hadoop -p ffcsict123
    select * from student;
    

在这里插入图片描述

  1. 成功!!!

五、配置hbase

  1. 原理
    在这里插入图片描述

  2. 相关指令

    cd /home/hadoop/hbase/hbase-2.1.0/bin
    1. 启动客户端:./hbase shell
    2. 建表:create 'B_STU','cf'
    3. 插入数据:put 'B_STU','001','cf:age','20'
    4. 覆盖数据:put 'B_STU','001','cf:age','18'
    5. 查看表数据: scan 'B_STU'
    6. 根据键查询数据:get 'B_STU','001'
    
  3. 连接测试

    cd /home/hadoop/hbase-2.3.5/bin
    1. 启动客户端:./hbase shell
    2. 建表:create 'B_STU','cf'
    

    报错:ERROR: org.apache.hadoop.hbase.security.AccessDeniedException: Insufficient permissions for user ‘hadoop’ (action=create)

  4. 在ranger界面新建hbase任务

    新建一个
    在这里插入图片描述

    名称跟配置文件对应
    在这里插入图片描述

    配置zk和用户
    在这里插入图片描述

    测试
    在这里插入图片描述

  5. 在ranger界面分配ranger权限
    在这里插入图片描述

    可以新建策略,也可以使用默认创建的最高权限策略,这里选择直接使用默认建好的
    在这里插入图片描述

    添加hadoop用户,保存即可
    在这里插入图片描述

  6. 连接测试

    cd /home/hadoop/hbase/hbase-2.3.5/bin
    1. 启动客户端:./hbase shell
    2. 建表:create 'B_STU','cf'
    

    成功!!!!!

六、配置yarn

  1. 原理
    在这里插入图片描述

  2. 配置文件:vi /home/hadoop/module/hadoop-3.2.2/etc/hadoop/capacity-scheduler.xml,添加yarntest队列

    	 <!-- 新增队列yarntest -->
         <property>
             <name>yarn.scheduler.capacity.root.queues</name>
             <value>default,yarntest</value>
             <description>
             The queues at the this level (root is the root queue).
             </description>
         </property>
    
         <!-- default队列资源占50 -->
         <property>
             <name>yarn.scheduler.capacity.root.default.capacity</name>
             <value>50</value>
             <description>Default queue target capacity.</description>
         </property>  
             
         <!-- default队列资源不足时,最大抢占资源60% -->
         <property>
             <name>yarn.scheduler.capacity.root.default.maximum-capacity</name>
             <value>60</value>
             <description>
             The maximum capacity of the default queue. 
             </description>
         </property>
             
            
    
    
         <!-- yarntest队列资源占50 -->
         <property>
             <name>yarn.scheduler.capacity.root.yarntest.capacity</name>
             <value>50</value>
         </property>  
             
         <!-- yarntest,最大抢占资源60% -->
         <property>
             <name>yarn.scheduler.capacity.root.yarntest.maximum-capacity</name>
             <value>60</value>
         </property>
    
    
      <property>
        <name>yarn.scheduler.capacity.root.yarntest.user-limit-factor</name>
        <value>1</value>
      </property>
    
    
    
      <property>
        <name>yarn.scheduler.capacity.root.yarntest.state</name>
        <value>RUNNING</value>
      </property>
    
      <property>
        <name>yarn.scheduler.capacity.root.yarntest.acl_submit_applications</name>
        <value>*</value>
      </property>
    
      <property>
        <name>yarn.scheduler.capacity.root.yarntest.acl_administer_queue</name>
        <value>*</value>
      </property>
    
      <property>
        <name>yarn.scheduler.capacity.root.yarntest.acl_application_max_priority</name>
        <value>*</value>
      </property>
    
       <property>
         <name>yarn.scheduler.capacity.root.yarntest.maximum-application-lifetime
         </name>
         <value>-1</value>
       </property>
    
       <property>
         <name>yarn.scheduler.capacity.root.yarntest.default-application-lifetime
         </name>
         <value>-1</value>
       </property>
    
    
    
  3. 切换新建用户测试

    hadoop jar /home/hadoop/module/hadoop-3.2.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.2.jar  pi -Dmapred.job.queue.name=default 2 2
    

    报错:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=zhanzhk, access=WRITE, inode=“/user”:root:supergroup:drwxr-xr-x

  4. 给zhanzhk用户添加“/user”文件夹的hdfs写权限,重新执行

    hadoop jar /home/hadoop/module/hadoop-3.2.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.2.jar  pi -Dmapred.job.queue.name=yarntest 2 2
    

    报错:Caused by: org.apache.hadoop.security.AccessControlException: User zhanzhk does not have permission to submit application_1668046054877_0003 to queue yarntest

  5. 新建任务
    在这里插入图片描述

    配置相关信息
    在这里插入图片描述

    测试
    在这里插入图片描述

  6. 配置用户权限
    在这里插入图片描述

    可新建策略,也可以使用默认生成的策略,这里直接使用默认的
    在这里插入图片描述

    配置新增用户并且保存
    在这里插入图片描述

  7. 重新执行

    hadoop jar /home/hadoop/module/hadoop-3.2.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.2.jar  pi -Dmapred.job.queue.name=yarntest 2 2
    

    成功!!!

七、相关注意点

  1. hdfs的权限是可以逐级赋权,即赋与二级目录权限,则一级目录无权限

  2. hdfs根目录默认对所有的用户都开放操作权限,需要限制只对hadoop超级管理员开放:hdf dfs -chmod 700 /

  3. 用户如果想要放开权限,需要做以下操作及开启相关文件夹权限

    ---------------------------------------------hdfs操作----------------------------------------------------

    1)开启需要访问的文件夹权限即可

    ---------------------------------------------yarn操作----------------------------------------------------

    1)yarn队列赋权

    2)hdfs-yarn临时文件创建与赋权:/tmp/hadoop-yarn/staging/用户名

    3)日志临时文件创建与赋权:/tmp/logs/用户名

    4)用户文件创建与赋权:/user/用户名

    5)日志:/home/hadoop/module/hadoop-3.2.2/logs/用户名

    6)历史:/tmp/hadoop-yarn/staging/history/done_intermediate/用户名

    --------------------------------------------hive操作----------------------------------------------------

    1)hive数据库权限配置

    2)yarn队列权限配置

    3)hdfs-hive数据库文件夹权限:/user/hive/warehouse/数据库名.db

    4)hdfs-hive临时工作文件权限:/tmp/hive/用户名

    --------------------------------------------hbase----------------------------------------------------

    1)hbase数据库表权限配置

  4. 队列的名称,一定要加上“root.”

八、整合kerberos后的配置差别

  1. 配置hdfs

    ps1:Service Name,服务名称,取配置文件

    ps2:Username&Password,ranger-hdfs的最高权限用户

    ps3:Namenode URL,namenode节点访问地址,取配置文件

    ps4:Authorization Enabled,开启权限控制

    ps5:Authentication Type,权限控制类型,选择kerberos

    ps6:hadoop.security.auth_to_local,默认DEFAULT

    ps7:dfs.datanode.kerberos.principal,datanode的kerberos认证用户

    ps8:dfs.namenode.kerberos.principal,namenode的kerberos认证用户

    ps9:policy.download.auth.users,刷新策略的kerberos用户

    ps10:dfs.journalnode.kerberos.principal,journalnode的kerberos认证用户
    在这里插入图片描述
    在这里插入图片描述

  2. 配置hive

    ps1:Service Name,服务名称,取配置文件

    ps2:Username&Password,ranger-hive的最高权限用户

    ps3:jdbc.url,访问hive路径

    ps4:policy.download.auth.users,刷新策略的kerberos用户
    在这里插入图片描述

  3. 配置hbase

    ps1:Service Name,服务名称,取配置文件

    ps2:Username&Password,ranger-hbase的最高权限用户

    ps3:hadoop.security.authentication,权限控制类型,选择kerberos

    ps4:hbase.master.kerberos.principal,hbase的kerberos认证用户

    ps5:hbase.security.authentication,权限控制类型,选择kerberos

    ps6:hbase.zookeeper.quorum ,zookeeper集群地址

    ps7:policy.download.auth.users,刷新策略的kerberos用户
    在这里插入图片描述
    在这里插入图片描述

  4. 配置yarn

    ps1:Service Name,服务名称,取配置文件

    ps2:Username&Password,ranger-yarn的最高权限用户

    ps3:YARN REST URL,yarn的访问地址

    ps4:Authentication Type,权限控制类型,选择kerberos

    ps5:policy.download.auth.users,刷新策略的kerberos用户
    在这里插入图片描述

    ps:可能版本原因导致连接测试失败,但是经过测试,kerberos+ranger监控yarn权限无异常,可以使用,仅测试连接失败,暂不解决这种情况。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/134738.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

跨平台数据库管理器DbGate

本文软件由网友 zxc 推荐&#xff1b;隔了很久才开始写&#xff0c;又隔了很久才想起来发 &#x1f602; 什么是 DbGate &#xff1f; DbGate 是跨平台的数据库管理器。支持 MySQL、PostgreSQL、SQL Server、MongoDB、SQLite 等的数据库管理器。能够在 Windows、Linux、Mac 下运…

Z函数(扩展KMP)

1,定义 z函数存储字符串s(长度n&#xff0c;下标从0开始&#xff09;与其所有后缀s[i,n-1](0<i<n-1)的最大公共前缀LCP的值&#xff08;一般默认z[0]0,有时是n) 2,思路 叫他扩展KMP是有原因的&#xff0c;因为思想相近&#xff0c;我们求取z[i]&#xff0c;尝试利用前…

20230102单独编译原厂RK3588开发板的开发板rk3588-evb1-lp4-v10的Android12的内核

20230102单独编译原厂RK3588开发板的开发板rk3588-evb1-lp4-v10的Android12的内核 2023/1/2 20:52 《RK3588_Android12_SDK_Developer_Guide_CN.pdf》 原厂的开发板rk3588-evb1-lp4-v10单独编译内核的方式&#xff1a; cd kernel-5.10 export PATH../prebuilts/clang/host/linu…

redis的常见命令

Redis 所有的 key&#xff08;键&#xff09;都是字符串。在谈基础数据结构时&#xff0c;我们讨论的是存储值的数据类型&#xff0c;主要包括常见的 5 种数据类型&#xff0c;分别是&#xff1a;String、List、Set、Zset、Hash 数据结构介绍 Redis 是一个 key-value 的数据库…

Java基础漏洞(一)

最近在复习一些Java基础&#xff0c;填补自己的知识漏洞。 1.转义字符 (1)\t代表的是制表符&#xff0c;\n代表的是空格&#xff0c;\r则代表的是回车 public class Main{public static void main(String[] args) {System.out.println("年龄\t性别\t身高\n18\t男\t183&…

《小猫猫大课堂》4——数组,操作符,常见关键字

更新不易&#xff0c;麻烦多多点赞&#xff0c;欢迎你的提问&#xff0c;感谢你的转发&#xff0c; 最后的最后&#xff0c;关注我&#xff0c;关注我&#xff0c;关注我&#xff0c;你会看到更多有趣的博客哦&#xff01;&#xff01;&#xff01; 喵喵喵&#xff0c;你对我…

十三、网络编程、UDP、TCP协议

JMM(了解) JMM就是Java内存模型(java memory model)。因为在不同的硬件生产商和不同的操作系统下&#xff0c;内存的访问有一定的差异&#xff0c;所以会造成相同的代码运行在不同的系统上会出现各种问题。所以java内存模型(JMM)屏蔽掉各种硬件和操作系统的内存访问差异&#…

python 办公自动后,第一天:创建excel写入数据

1&#xff0c;python第三方模块&#xff1a;xlwt写入excel文件 #pycharm 中安装pip install xlwt #xlwr 用户写入文件模块 #pip install xlwt # pip list 查看安装的模块 # pip install import xlwt#创建excelwb xlwt.Workbook()# 选择工作簿sh wb.add_sheet(第一个sheet页…

LVGL学习笔记11 - 按钮矩阵Button Matrix

目录 1. 构造矩阵 2. Parts 2.1 LV_PART_MAIN 2.2 LV_PART_ITEMS 3. 样式 3.1 按钮大小 3.2 间距 3.3 控制按钮 3.4 控制map 3.5 Check唯一性 4. 事件 4.1 LV_EVENT_VALUE_CHANGED 4.2 LV_EVENT_LONG_PRESSED 4.3 LV_EVENT_DRAW_PART_BEGIN 按钮矩阵是多个按钮的组…

臻图信息搭建土壤墒情监测应用平台,推进现代农业信息化发展

“十四五”期间&#xff0c;国家高度重视土壤生态环境监测等问题&#xff0c;先后出台了一系列规范性文件&#xff0c;为我国土壤防治领域建立了一套标准、导则、指南和管理等解决对策&#xff0c;使我国土壤修复法律法规和标准化建设呈现出系列化和系统化趋势&#xff0c;有效…

计算机视觉实战-----pytorch官方demo(Lenet网络)实现

系列文章目录 文章目录系列文章目录前言零、环境搭建一、下载CIFAR10数据集二、测试图片三、模型搭建四、开始train五、测试六、tensorboard可视化总结前言 通过一个官方列子&#xff0c;清楚深度学习中图像的训练的整个流程 零、环境搭建 pycharm下载&#xff1a;pycharm官网…

【C语言】算法好题初阶(每日小细节010)

1.存在重复元素 力扣传送门、 这道题目的解题思路就是先排序然后比较相邻元素是不是有相等的&#xff0c;有就是true否者false 排序的算法比较多大&#xff0c;但是我用插入和快排plus版都没有过... 但是非递归的归并过了&#xff0c;对排序算法感兴趣的小伙伴可以去看我的博…

一款统计摸鱼时长的开源项目

对于我们程序员&#xff0c;在工作中一天8小时&#xff0c;不可能完全在写代码了&#xff0c;累了刷刷论坛、群里吹吹牛&#xff0c;这都是非常正常的。虽然一天下来&#xff0c;可能我们都可以按时完成工作&#xff0c;但是我们不知道&#xff0c;时间都花在哪里了&#xff0c…

小米万兆路由器里的Docker安装MySQL8.0

小米2022年12月份发布了万兆路由器&#xff0c;里面可以使用Docker。 今天尝试在小米的万兆路由器里安装MySQL8.0。 准备工作 请参考https://engchina.blog.csdn.net/article/details/128515422的准备工作。 创建存储 请参考https://engchina.blog.csdn.net/article/detail…

Faster RCNN网络源码解读(Ⅹ) --- FastRCNN部分正负样本采样及FastRCNN部分损失计算

目录 一、回顾以及本篇博客内容概述 二、代码解析 2.1 ROIHeads类&#xff08;承接上篇博客的2.5节&#xff09; 2.1.1 初始化函数 __init__回顾 2.1.2 正向传播forward回顾 2.1.3 select_training_samples 2.1.4 add_gt_proposals 2.1.5 assign_targets_to_proposals…

【Git】Git瘦身,清理Git历史提交/.git大文件清理(云效、UI 自动化项目)

目前项目是存在云效(codeup.aliyun.com)上 本地清理后&#xff0c;还需要到云效上清理「存储空间管理」 一、清理/瘦身效果二、到底是什么在占空间&#xff1f;1、先看一下项目里&#xff0c;什么最占空间&#xff1f;2、往下看在/.git里&#xff0c;什么最占空间&#xff1f;三…

车载诊断协议UDS——读取故障服务Service 19

汽车控制器诊断功能,可以通过诊断服务读取车内控制器故障信息。如本文所分享的内容,通过Service 19服务读取车内控制器故障信息。 一、DTC显示类型 在OEM定义的诊断需求规范中,会定义DTC(诊断故障码)与具体控制器具体故障类型相关联(一个DTC故障码对应一个具体故障)…

深度学习目标检测_YOLOV2超详细解读

文章目录YOLO v2概述Batch Normalization&#xff08;批归一化&#xff09;High Resolution Classifier&#xff08;高分辨率预训练分类网络&#xff09;New Network&#xff1a;Darknet-19神经网络中的filter &#xff08;滤波器&#xff09;与kernel&#xff08;内核&#xf…

【Java语言】— 循环结构:while循环、do-while循环

while循环 1.while循环格式与执行流程 while循环格式 初始化语句; while (循环条件){循环体语句(被重复执行的代码);迭代语句; }示例&#xff1a; inti 0; while (i < 3){System.out.println("Hello World");i; }while循环执行流程 什么时候用for循环&#x…

蓝桥杯寒假集训第五天(子串分值和)

没有白走的路&#xff0c;每一步都算数&#x1f388;&#x1f388;&#x1f388; 题目描述&#xff1a; 输入一个字符串&#xff0c;然后计算所有连续子串中没有重复字母的个数 输入描述&#xff1a; 第一行&#xff1a; 一个字符串 输出描述&#xff1a; 所有子串中没有…