Hadoop分布式文件系統(HDFS)支持基于用戶和組的權限管理
在HDFS的conf目錄下,找到或創建一個名為core-site.xml的文件,并添加以下內容:
<configuration>
<property>
<name>hadoop.security.authorization</name>
<value>true</value>
</property>
<property>
<name>hadoop.security.authentication</name>
<value>true</value>
</property>
</configuration>
這將啟用HDFS的權限管理和身份驗證功能。
在HDFS的conf目錄下,找到或創建一個名為hdfs-site.xml的文件,并添加以下內容:
<configuration>
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.permissions.check-path-access</name>
<value>true</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
</configuration>
這將啟用HDFS的權限檢查功能。
在HDFS的conf目錄下,創建一個名為krb5.conf的文件,并添加以下內容(以您的Kerberos實際配置為準):
[libdefaults]
default_realm = YOUR-REALM.COM
[realms]
YOUR-REALM.COM = {
kdc = kdc.your-realm.com
admin_server = admin.your-realm.com
}
[domain_realm]
.your-realm.com = YOUR-REALM.COM
your-realm.com = YOUR-REALM.COM
在hdfs-site.xml文件中,添加以下內容:
<property>
<name>hadoop.security.authentication</name>
<value>kerberos</value>
</property>
<property>
<name>hadoop.security.authorization</name>
<value>true</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
將所有節點上的krb5.conf文件復制到相應的位置,并確保所有節點上的Java環境已配置為使用Kerberos身份驗證。
使用Hadoop命令行工具創建用戶和組,例如:
hadoop fs -mkdir /user/myuser
hadoop fs -chown myuser:mygroup /user/myuser
使用Hadoop命令行工具設置文件或目錄的權限,例如:
hadoop fs -chmod 755 /user/myuser/myfile
hadoop fs -chown myuser:mygroup /user/myuser/myfile
現在,HDFS已經配置為使用Kerberos身份驗證和基于用戶和組的權限管理。用戶需要使用他們的Kerberos憑據訪問HDFS資源,并且權限將應用于文件或目錄。