使用Hadoop ACL 控制訪问权限

一、HDFS訪问控制

hdfs-site.xml设置启动acl

<property> 

<name>dfs.permissions.enabled</name> 

<value>true</value> 

</property>

<property> 

<name>dfs.namenode.acls.enabled</name> 

<value>true</value> 

</property>

core-site.xml设置用户组默认权限.

<property>

<name>fs.permissions.umask-mode</name>

<value>002</value>

</property>

各需求和解决的方法例如以下:

  • 1.除了数据仓库负责人,普通用户不能创建数据库,也不能在默认库中创建表.

    /user/hive/warehouse的默认权限改为755,全部者是hadoop(或者数据仓库负责人),那么没有人能创建数据库,也不能在默认库中创建表.

  • 2.数据仓库负责人创建数据库之后,能够分配给项目组,该项目组能够在此数据库建立表.

    /user/hive/warehouse/数据库.db的全部者改为项目组.

  • 3.数据仓库负责人创建数据库之后,不把创建表的权限分给项目组,而为其创建表,仅仅同意项目组插入分区.

    数据仓库负责人继续保持/user/hive/warehouse/数据库.db的权限,项目组不能建立表,数据仓库负责人为项目组创建表之后,把表所在的文件夹分给项目组.

  • 4.某些表仅仅能本项目组读写.

    /user/hive/warehouse/数据库.db/表名所在的文件夹改为770 .

  • 5.某些表仅仅能本项目组的特殊用户读写.

    /user/hive/warehouse/数据库.db/表名所在的文件夹的全部者改为此用户,而且权限改为700 .

  • 6.项目组的表,须要其他组的特别用户插入数据.

    使用下面的命令能够mapngxu对dntest.db的表testp1有写权限 hdfs dfs -setfacl -R -m user:mapengxu:rwx /user/hive/warehouse/cdntest.db/testp1

  • 7.项目组的表,须要其他组的特别用户有读到数据的权限.

    hdfs dfs -setfacl -R -m user:mapengxu:r-x /user/hive/warehouse/cdntest.db/testp1

  • 8.项目组的表,须要其他组的全部用户有读到数据的权限.

    hdfs dfs -setfacl -R -m group:data_sum:r-x /user/hive/warehouse/cdntest.db/testp1

  • 9.创建默认数据库,此数据库全部用户都有创建
    表的权限。但仅仅保存30天.

    /user/hive/warehouse/数据库.db的权限改为777。而且设置定时任务扫描该文件夹及hive数据库。假设有创建时间超过30天的表。删除表及所在文件夹。

  • 10.该措施和基础SQL的訪问控制结合。

任务调度

按用户组管理队列,在入口机和jenkins权限统一,按所在组分配资源,方便按项目组统计各项目组每天,每周占用多少集群资源. mapred-site.xml配置例如以下:

<property> 

<name>mapred.acls.enabled</name> 

<value>true</value> 

</property> 

<property> 

<name>mapred.fairscheduler.poolnameproperty</name> 

<value>group.name</value> 

</property> 

fair-scheduler.xml配置例如以下:

<?xml
version="1.0"?>
 

<allocations>

<pool
name="cdn">
 

<maxResources>1000
vcores</maxResources>
 

<maxRunningJobs>10</maxRunningJobs> 

<weight>1.0</weight> 

<schedulingPolicy>fair</schedulingPolicy> 

</pool> 

<pool
name="data_sum">
 

<maxResources>
1000 vcores</maxResources>
 

<maxRunningJobs>10</maxRunningJobs> 

<weight>1.0</weight> 

<schedulingPolicy>fair</schedulingPolicy> 

</pool>

<userMaxAppsDefault>2</userMaxAppsDefault>

<queuePlacementPolicy> 

<rule
name="primaryGroup" create="false" />
 

<rule
name="secondaryGroupExistingQueue" create="false" />
 

<rule
name="user" create="false"/>
 

<rule
name="reject"/>
 

`

`

使用Hadoop ACL 控制訪问权限的更多相关文章

  1. Java 訪问权限控制:你真的了解 protected keyword吗?

    摘要: 在一个类的内部,其成员(包含成员变量和成员方法)是否能被其它类所訪问,取决于该成员的修饰词:而一个类是否能被其它类所訪问,取决于该类的修饰词.Java的类成员訪问权限修饰词有四类:privat ...

  2. ProFTPD配置匿名登录与文件夹訪问权限控制

    对ProFTPDserver配置匿名登录.         查看配置文件proftpd.conf.默认情况下配置文件里的.匿名登录配置User和Group均为ftp. 查看/etc/passwd确认用 ...

  3. Android 訪问权限清单

    Android权限设置 概述 权限 说明 訪问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES 读取或写入登记check-in数据库属性表的权限 获取 ...

  4. apache主机(网站)配置,port监听,文件夹訪问权限及分布式权限

    前言 一个网站的两个核心信息为: 主机名称(server名/网站名):ServerName server名 网站位置(网站文件夹路径):DocumentRoot "实际物理路径" ...

  5. [加入用户]解决useradd 用户后没有加入用户Home文件夹的情况,Linux改变文件或文件夹的訪问权限命令,linux改动用户password,usermod的ysuum安装包。飞

    usermod的yum安装包: shadow-utils 将nobody用户加入到nogroup 组: usermod -g nogroup nobody cat /etc/passwd|grep n ...

  6. Objective-C 类属性和方法的訪问权限

    OC中提供了4种訪问权限.@private, @public, @protected这三种和其它的C++, Java是一样的,@package这个訪问权限并非Java里的包訪问权限,OC中没有包的概念 ...

  7. win7 wifi 无Internet訪问权限或者有限的訪问权限

    自己家的无线路由器,手机和笔记本都使用正常,可是一台新笔记本连上之后总是提示"有限的訪问权限",无法连公网. 网上的非常多办法都无论用,什么设置静态IP或者重新启动路由,基本都是瞎 ...

  8. gcc的bug? c++模板类中友元函数的訪问权限问题

    原文地址:http://stackoverflow.com/q/23171337/3309790 在c++中,模板类中能够直接定义一个友元函数.该函数拥有訪问该模板类非public成员的权限. 比方: ...

  9. 用Shell脚本过滤Hadoop中不能訪问的节点

    近期使用的一个集群hp1,由于维护集群的人不给力.节点总是过一段时间就掉一两个.今天发现重新启动hadoop时,HDFS已经进入保护模式了. 决定把slaves节点中的无法訪问的节点所有过滤掉.所以写 ...

随机推荐

  1. js禁止某个页面的回退

    ;!function(pkg, undefined){ var STATE = 'x-back'; var element; var onPopState = function(event){ eve ...

  2. pyftpdlib 搭建ftp环境

    环境搭建: pythonwindows/linuxpip install pyftpdlib (安装失败请到这里下载:https://pypi.python.org/pypi/pyftpdlib/)一 ...

  3. NodeJS学习笔记 (6)网络服务-http-res(ok)

    原文:https://github.com/chyingp/nodejs-learning-guide 自己敲代码: 概览 http模块四剑客之一的res,应该都不陌生了.一个web服务程序,接受到来 ...

  4. 洛谷1345 [Usaco5.4]奶牛的电信

    题目描述 农夫约翰的奶牛们喜欢通过电邮保持联系,于是她们建立了一个奶牛电脑网络,以便互相交流.这些机器用如下的方式发送电邮:如果存在一个由c台电脑组成的序列a1,a2,...,a(c),且a1与a2相 ...

  5. Vue style里面使用@import引入外部css, 作用域是全局的解决方案

    问题描述 使用@import引入外部css,作用域却是全局的 <template> </template> <script> export default { na ...

  6. window下搭建Python3.7+selenium3.1.1+pycharm环境

    1.安装Python3.7 1.1  下载 Python并安装 Python3.5 (勾选上 Add Python3.7 to PATH) 点击 Install Now,安装完成后将python路径加 ...

  7. visual studio 2015下python编程的中文字符串问题

    visual studio 2015强大的编程功能,编写起python来也是非常方便的,但其对中文字符的支持不是很好,经常发生莫名其妙的错误,最常见的错误是不报错,也不执行代码. 代码简单如下: x= ...

  8. 低价购买 洛谷1108 codevs4748 dp

    首先,,我相信第一问是可以做出来的,,,做不出来自行面壁思过,,, 第二问,我们可以发现,如果f[i]为1时应该将其g[i]初始化为1,当初就是因为这个wa了一个世纪,之后先考虑不需要判重时的情况,如 ...

  9. STL_算法_Heap算法(堆排)(精)

    C++ Primer 学习中. . . 简单记录下我的学习过程 (代码为主) /***************************************** STL-算法--Heap算法 堆排序 ...

  10. new 对象和Class的getInstance()方法的差别?

    创建对象时的差别 1.new 对象包含2步, 1)载入类: 2)而且实例化. 2.Class的对象.getInstance(),只不过实例化. 也就是说.在运行 Class的对象.getInstanc ...