Hadoop分布式文件系統(tǒng)(HDFS)支持基于用戶和組的權(quán)限管理
在HDFS的conf目錄下,找到或創(chuàng)建一個名為core-site.xml的文件,并添加以下內(nèi)容:
<configuration>
<property>
<name>hadoop.security.authorization</name>
<value>true</value>
</property>
<property>
<name>hadoop.security.authentication</name>
<value>true</value>
</property>
</configuration>
這將啟用HDFS的權(quán)限管理和身份驗證功能。
在HDFS的conf目錄下,找到或創(chuàng)建一個名為hdfs-site.xml的文件,并添加以下內(nèi)容:
<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的權(quán)限檢查功能。
在HDFS的conf目錄下,創(chuàng)建一個名為krb5.conf的文件,并添加以下內(nèi)容(以您的Kerberos實際配置為準(zhǔn)):
[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文件中,添加以下內(nèi)容:
<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>
將所有節(jié)點上的krb5.conf文件復(fù)制到相應(yīng)的位置,并確保所有節(jié)點上的Java環(huán)境已配置為使用Kerberos身份驗證。
使用Hadoop命令行工具創(chuàng)建用戶和組,例如:
hadoop fs -mkdir /user/myuser
hadoop fs -chown myuser:mygroup /user/myuser
使用Hadoop命令行工具設(shè)置文件或目錄的權(quán)限,例如:
hadoop fs -chmod 755 /user/myuser/myfile
hadoop fs -chown myuser:mygroup /user/myuser/myfile
現(xiàn)在,HDFS已經(jīng)配置為使用Kerberos身份驗證和基于用戶和組的權(quán)限管理。用戶需要使用他們的Kerberos憑據(jù)訪問HDFS資源,并且權(quán)限將應(yīng)用于文件或目錄。