hadoop 2.6 权限管理

hadoop集群的权限可以通过2方面来进行:


1.

HDFS的文件ACL(Access Control Lists),类似于POSIX ACL(Linux使用ACL来管理文件权限)。
首先参数上要开启基本权限和访问控制列表功能,在CDH 5.2中,默认的参数dfs.namenode.acls.enabled为false。


<property>
    <name>dfs.permissions.enabled</name>
    <value>true</value>
</property>
<property>
    <name>dfs.namenode.acls.enabled</name>
    <value>true</value>
</property>

同一组的成员有读权限,没有写权限:
[mapred@master ~]$ groups  
hadoop  
[mapred@master ~]$ hadoop fs -ls /input/acl  
Found 1 items  
-rw-r--r-- 3 hadoop supergroup 5919 2014-04-25 15:08 /input/acl/yarn-site.xml  
[mapred@master hadoop]$ hadoop fs -put conf/capacity-scheduler.xml /input/acl  
put: Permission denied: user=mapred, access=WRITE, inode="/input/acl":hadoop:supergroup:drwxr-xr-x





赋予权限方式目前发现2种:
适用于直接对文件夹给权限
a. hadoop fs -chmod 711 /test

适用于针对某个user单独给权限
b。hdfs dfs -setfacl -m user:mapred:r-- /test



2. 另外可以通过开启Kerberos 认证

core-site.xml
  <property>
    <name>hadoop.security.authentication</name>
    <value>simple</value>
    <description></description>
  </property>
  <property>
    <name>hadoop.security.authorization</name>
    <value>true</value>
    <description></description>
  </property>
  
  如果没有权限则会报错:
  [hadoop1@slave1 ~]$ hadoop fs -ls /user/hadoop1
16/04/01 15:36:33 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
ls: User hadoop1 (auth:SIMPLE) is not authorized for protocol interface org.apache.hadoop.hdfs.protocol.ClientProtocol, expected client Kerberos principal is null


你可能感兴趣的:(hadoop 2.6 权限管理)