分享

hadoop入门-第二章common:第二节hadoop代理用户 -超级用户代理其它用户

pig2 2016-1-22 20:04:13 发表于 连载型 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 14103
问题导读
1.你认为什么情况下使用代理用户?
2.代理用户与普通用户的区别是什么?
3.如何配置超级用户代理其它用户?









说明
这个文档描述怎么使用超级用户提交job和代理其它用户访问hdfs


用例
下一节中描述的代码示例适用于以下用例。
超级用户‘super’ 代理用户joe提交job和访问hdfs,超级用户有kerberos认证,用户joe没有。任务需要运行用户joe和任何文件访问NameNode需要用户joe。它需要用户joe连接namenode或则job tracker使用super的kerberos凭据的连接认证,换句话说,超级用户模拟【冒充】用户joe

代码示例
在这个例子中超级的凭证用于登录和创建一个代理用户ugi对象为joe。这个操作实现了代理用户ugi对象的doAs方法

[mw_shl_code=bash,true]  ...
    //Create ugi for joe. The login user is 'super'.
    UserGroupInformation ugi =
            UserGroupInformation.createProxyUser("joe", UserGroupInformation.getLoginUser());
    ugi.doAs(new PrivilegedExceptionAction<Void>() {
      public Void run() throws Exception {
        //Submit a job
        JobClient jc = new JobClient(conf);
        jc.submitJob(conf);
        //OR access hdfs
        FileSystem fs = FileSystem.get(conf);
        fs.mkdir(someFilePath);
      }
    }[/mw_shl_code]


配置

你可以配置代理用户使用属性 hadoop.proxyuser.$superuser.hosts  或则使用 hadoop.proxyuser.$superuser.groupsadoop.proxyuser.$superuser.users.通过指定如下 core-site.xml,超级用户super冒充用户属于group1 和 group2,仅能连接 host1 和 host2
[mw_shl_code=bash,true]<property>
     <name>hadoop.proxyuser.super.hosts</name>
     <value>host1,host2</value>
   </property>
   <property>
     <name>hadoop.proxyuser.super.groups</name>
     <value>group1,group2</value>
   </property>[/mw_shl_code]
如果没有配置这些,冒充不被允许,连接失败。更宽松的不严格的安全性,通配符的值*允许代理任何用户,任何host。比如通过以下core-site.xml,用户oozie访问任何host,可以代理任何用户所属的任何组
[mw_shl_code=bash,true]  <property>
    <name>hadoop.proxyuser.oozie.hosts</name>
    <value>*</value>
  </property>
  <property>
    <name>hadoop.proxyuser.oozie.groups</name>
    <value>*</value>
  </property>[/mw_shl_code]

hadoop.proxyuser.$superuser.hosts访问 ip 地址列表,CIDR格式和/或主机名IP地址范围。比如以下,用户super 访问主机ip地址范围 10.222.0.0-15 到 10.113.221.221,可以代理 user1 和 user2.
[mw_shl_code=bash,true]  <property>
     <name>hadoop.proxyuser.super.hosts</name>
     <value>10.222.0.0/16,10.113.221.221</value>
   </property>
   <property>
     <name>hadoop.proxyuser.super.users</name>
     <value>user1,user2</value>
   </property>[/mw_shl_code]


注意事项

如果集群运行在安全模式下,超级用户必须有kerberos凭据才能代理另一个用户。它不能使用委托tokens功能,如果超级用户添加自己的委托token到代理用户ugi这是错误的,它允许代理用户连接到具有超级用户的特权服务。尽管如此,如果超级用户确实想委托token给joe用户,它必须首先代理joe,得到joe的委托token,同样的方法如上面代码示例,添加它到joe的ugi,以这样的方式委托token属于joe.




相关文章

hadoop入门-第一章General:第一节单节点伪分布

hadoop入门-第一章General:第二节集群配置

hadoop入门-第一章General:第三节Hadoop初级入门之命令指南

hadoop入门-第一章General:第四节文件系统shell

hadoop入门-第一章General:第五节hadoop的兼容性说明

hadoop入门-第一章General:第六节开发人员和用户接口指南:hadoop接口分类

hadoop入门-第一章General:第七节Hadoop 文件系统 API :概述

hadoop入门-第二章common:第一节hadoop 本地库 指南

hadoop入门-第二章common:第二节hadoop代理用户 -超级用户代理其它用户

hadoop入门-第二章common:第三节机架智能感知

hadoop入门-第二章common:第四节安全模式说明

hadoop入门-第二章common:第五节服务级别授权指南

hadoop入门-第二章common:第六节Hadoop HTTP web-consoles认证机制

hadoop入门-第二章common:第七节Hadoop Key管理服务器(KMS) - 文档集

hadoop入门:第三章HDFS文档概述(一)

hadoop入门:第三章HDFS文档概述(二)

hadoop入门:第四章mapreduce文档概述

hadoop入门:第五章MapReduce REST APIs文档概述

hadoop入门:第六章YARN文档概述

hadoop入门:第七章YARN REST APIs

hadoop入门:第八章hadoop兼容文件系统

hadoop入门:第九章hadoop认证

hadoop入门:第十章hadoop工具

hadoop入门:第十一章hadoop配置



没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条