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

一、原理介绍

  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权限无异常,可以使用,仅测试连接失败,暂不解决这种情况。
    在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值