HDFS ACLs测试

Hadoop从2.4开始支持HDFS层面的ACLs,新的ACLs功能包含了新的api,使用方法以及使用场景,本测试探查ACLs与我们原先基于主机与组的ACLs的结合,以及ACLs使用方法等。

一、配置增加

    为了使用ACLs,需要在NameNode增加一个配置选项,为:

  <property>

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

    <value>true</value>

  </property>

    默认是不开启的。


 

二、说明及使用场景

 

    hadoop原先使用的permission比较简单,采用的是类似Linux POSIX,即定义User,Group 和Other的权限。对文件或者目录做的任何操作都会进行permission check。permission check的步骤如下:

    1、检查用户是否是文件或者目录Owner,如果是检查权限,权限符合返回

    2、检查用户组是否在文件或者目录的Group中,用户组是通过原先的ACLs获得,如果在相应的组中,符合权限就返回

    3、最后检查Other的权限,如果满足就返回

    4、如果都不符合,抛出AccessControlException

 

    可以看到,以前的权限检查比较简单,相应的角色也只有User,Group,Other,对于稍微复杂的需求存在缺陷。比如:

    1、需要对某些文件对多个用户开放读权限,但是所有用户都不属于同一个组

    2、某些文件开放对多个组用户的访问权限,但是不同组中所有用户并不能归为一个大组等其它很多用处。所以新增的ACLs能够满足用户的大量对权限管理的需求。

Continue reading…