使用Hadoop ACL 控制访问权限

使用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"/>

`

`

时间: 2024-11-07 08:39:23

使用Hadoop ACL 控制访问权限的相关文章

使用Hadoop ACL 控制訪问权限

使用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&l

ACL控制访问列表原理+实验

ACL控制访问列表原理+实验1.原理:ACL使用包过滤技术,在路由器上读取ISO七层模型的第三层及第四层包头中的信息,如源地址,目的地址,源端口,目的端口等,根据预先定义好的规则,对包头进行过滤.2.从上到下逐条匹配,一旦匹配则停止匹配,一条不匹配,执行隐含(拒绝)命令.3.原则上ACL控制访问列表设置在进端口效率更高4.ACL的类型有三类:A.标准ACL,根据数据包的源IP地址来允许或拒绝转发数据包,列表号(1-99)B.扩展ACL,根据数据包的源IP地址,目的IP地址,指定协议,端口和标志来

CenTOS7使用ACL控制目录权限,只给某个用户访问特定目录

前言 Linux 基本的权限控制仅可以对所属用户.所属组.其他用户进行的权限控制,而不能精确地控制每个用户的权限.ACL 规则就是用来解决这个问题的. 使用 ACL 规则,我们可以针对单一账户设置文件及目录的访问权限. 实验环境: 操作系统:CentOS Linux release 7.5.1804 (Core) 组:默认用户组 用户:qudao:x:1010:1010::/home/qudao:/bin/bash 目录: /var/www/web/1.com 已设置acl规则的文件 设置ACL

使用nginx和iptables做访问权限控制(IP和MAC)

之前配置的服务器,相当于对整个内网都是公开的 而且,除了可以通过80端口的nginx来间接访问各项服务,也可以绕过nginx,直接ip地址加端口访问对应服务 这是不对的啊,所以我们要做一些限制 因为只是对特定的人提供服务,而且局域网IP和MAC都是固定的,所以可以直接用白名单,其他的全部拒绝 /**************************************使用nginx做访问权限控制*********************************/ 先在nginx做设置 在/et

20150122--商品入库+缩略图+访问权限-02

封装图片工具类 1. 在前台的公共文件里面制作工具类:image./includes/Image.class.php 2. 增加属性 3. 初始化属性:用户可以自定义,也可以使用系统默认的. a) 配置文件中配置缩略图的大小 b) 构造方法初始化属性 4. 增加缩略图制作方法. a) 判断源文件是否存在 b) 通过文件的后缀名来确定调用哪个函数打开原图资源. c) 通过可变函数来实现打开资源 d) 获取缩略图资源 e) 压缩图片 缩略图实际占用宽和高的原理 获取图片的数组:宽和高 getimag

MVC5+EF6 入门完整教程12--灵活控制Action权限

大家久等了. 本篇专题主要讲述MVC中的权限方案. 权限控制是每个系统都必须解决的问题,也是园子里讨论最多的专题之一. 前面的系列文章中我们用到了 SysUser, SysRole, SysUserRole 这几个示例表. 我们以此为基础,完成RBAC (基于角色的控制) 的核心功能. 在此给出我的最佳实践,最终的效果是针对任意一个Action或Controller,都可以根据配置的角色来控制访问权限. 完成此核心功能后,可以再往两方面扩展常用功能: 1. 可以根据 组织/用户/角色 的并集来控

01 安装apache php配置 时区 环境变量 安装mysql 虚拟主机 文件夹访问权限 目录别名

php介绍 简介与历史 应用领域: php运行环境 php语言运行原理 安装apache: PHP的命令行运行模式(独立运行): 配置apache以运行php网页 配置php的基本运行环境 确定php配置文件(php.ini)的位置: 配置时区: 设置环境变量 检测apache配置文件语法 配置数据库连接机制 安装mysql数据库 虚拟主机配置 端口监听: 主机配置关键项 配置文件夹访问权限 主机别名设置 文件夹访问控制的文件控制方式 目录别名设置Alias 多站点配置: php介绍 简介与历史

[04] 包和访问权限修饰符

1.包 在某个类中的最上方,我们总是可以看到以 package 关键字开头的一行代码,这行代码表示了当前类的位置,我们称之为包. package com.learn.pay.service; 包实际上是: 物理上是文件夹 逻辑上是有相互关系的类的集合 物理上是文件夹,是说假如你的包名是 "com.learn.java.Person",那么实际上Person这个java文件在项目文件夹下的 "com / learn / java /" 文件夹中. 而逻辑上相关联的类的

.NET 控制Windows文件和目录访问权限研究(FileSystemAccessRule)

前一段时间学习了.net 控制windows文件和目录权限的相关内容,期间做了一些总结.想把这方面的研究跟大家分享,一起学习.其中不免得有些用词不太标准的地方,希望大家留言指正留言,我加以修改. 首先,我们利用一个方法作为示例: /// <summary> /// 为指定用户组,授权目录指定完全访问权限 /// </summary> /// <param name="user">用户组,如Users</param> /// <par