Hadoop 权限管理

来源:互联网 发布:lvs和nginx的区别 编辑:程序博客网 时间:2024/04/30 19:01
如下图,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
0 0
原创粉丝点击