Hadoop 權限管理(轉)


如下圖,hadoop訪問控制分為兩級,其中ServiceLevel Authorization為系統級,用於控制是否可以訪問指定的服務,例如用戶/組是否可以向集群提交Job,它是最基礎的訪問控制,優先於文件權限和mapred隊列權限驗證。Access Control on Job Queues在job調度策略層之上,控制mapred隊列的權限。DFSPermmision用戶控制文件權限。目前版本中,連接到hadoop集群的用戶/組信息取決於客戶端環境,即客戶端主機中`whoami`和`bash –c groups`取到的用戶名和組名,沒有uid和gid,用戶屬組列表中只要有一個與集群配置的用戶組相同即擁有該組權限。

1、 配置Service Level Authorization

修改core-site.xml

<property> <name>hadoop.security.authorization</name> <value>true</value> </property> 

hadoop.security.authorization=true則開啟ServiceLevel Authorization,若為false則不經過任何驗證,所有用戶擁有全部權限。(修改此配置需要重啟hadoop)

Service LevelAuthorization有9個可配置的屬性,每個屬性可指定擁有相應訪問權限的用戶或者用戶組。這9個ACL屬性如下(hadoop-policy.xml):

這9個屬性的配置方法相同,具體如下:

每個可配置多個用戶,用戶之間用“,”分割;可配置多個用戶組,分組之間用“,”分割,用戶和分組之間用空格分割,如果只有分組,前面保留一個空格,如:

<property> <name>security.job.submission.protocol.acl</name> <value>alice,bobgroup1,group2</value> </property> 

 

默認情況下,這9個屬性不對任何用戶和分組開放。

該配置文件可使用以下命令動態加載:

(1)    更新namenode相關屬性:bin/hadoop dfsadmin –refreshServiceAcl

(2)    更新jobtracker相關屬性:bin/hadoopmradmin –refreshServiceAcl

 

2、 調度器配置

修改mapred-site.xml

<property> <name>mapred.jobtracker.taskScheduler</name> <value>org.apache.hadoop.mapred.CapacityTaskScheduler</value> </property> 

 

啟用Access Contol onJob Queues需選擇一個支持多隊列管理的調度器,所以mapred.jobtracker.taskScheduler只能為CapacityTaskScheduler或FairScheduler。

在mapred-site.xml里配置隊列,如:

<property> <name>mapred.queue.names</name> <value>default,hadoop,stat,query</value> </property> 

 

3、 Access Contol on JobQueues配置

Access Contol on Job Queues開關在mapred-site.xml,如下:

<property> <name>mapred.acls.enabled</name> <value>true</value> </property>  

mapred.acls.enabled=true開啟,為false關閉。

         具體ACL屬性在mapred-queue-acl.xml里,如:

 

<property> <name>mapred.queue.stat.acl-submit-job</name> <value>user1,user2 group1,group2</value> </property> 

表示user1,user2和group1,group2可以向stat queue提交job。

4、 DFS permission配置

修改hdfs-site.xml 

<property> <name> dfspermission </name> <value>true</value> </property> 

dfs.permission是否開啟文件權限驗證,true開啟,false不進行讀寫權限驗證。(注:dfs.permission開啟與否dfs permission信息都不會改變后丟失,chown、chgrp、chmod操作也始終會驗證權限,dfspermission信息只在namenode里,並不在danode里與blocks關聯)

用chown、chgrp、chmod修改文件/目錄的屬主、屬組和權限。

 

補:Job ACL

Job ACL默認值配置在mapred-site.xml里,如下:

復制代碼
<property> <name>mapreduce.job.acl-view-job</name> <value>user1</value> </property> <property> <name>mapreduce.job.acl-modify-job</name> <value>user1</value> </property> 
復制代碼

表示,默認情況下,user1用戶擁有job的查看和修改權限。 

Job提交者可以指定mapreduce.job.acl-view-job和mapreduce.job.acl-modify-job值,提交時指定的值會覆蓋默認值。

Job提交者、superuser、集群管理員(mapreduce.cluster.administrators)、JobQueue管理員始終擁有該權限。

 

轉自 http://blog.csdn.net/cheersu/article/details/8080162

 

參考資料:

《Service Level Authorization Guide》

《Cluster Setup》

《HDFS Permissions Guide》

《hadoop權限管理》

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM