Hadoop官网翻译 【Proxy user】

说明

使用超级用户可以代表其他用户的行为

使用案例

比如说一个“super”的超级用户希望代表用户"joe"提交作业并访问hdfs,超级用户具有kerberos凭据,joe没有。
任务需要以joe的身份运行。
文件访问需要以joe的身份运行。
joe以super的凭据连接到namenode,就是说super模拟用户joe。

demo

spuer创建一个“joe”代理用户的udi,来提交任务,访问hdfs。

...
    //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);
      }
    }

配置

可以通过配置hadoop.proxyuser. s u p e r u s e r . h o s t s 和 h a d o o p . p r o x y u s e r . superuser.hosts和hadoop.proxyuser. superuser.hostshadoop.proxyuser.superuser.groups /hadoop.proxyuser.$superuser.users.来定义可以超级用户可以代理哪些用户。

  <property>
     <name>hadoop.proxyuser.super.hosts</name>
     <value>host1,host2</value>
   </property>
   <property>
     <name>hadoop.proxyuser.super.groups</name>
     <value>group1,group2</value>
   </property>

也可以配置成*,下面的例子是oozie用户可以模拟所有的用户提交

 <property>
    <name>hadoop.proxyuser.oozie.hosts</name>
    <value>*</value>
  </property>
  <property>
    <name>hadoop.proxyuser.oozie.groups</name>
    <value>*</value>
  </property>

host可以配置成ip,表示某一个ip范围内的访问的客户端可以模拟用户user1,user2

   <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>

说明

  • 如果是kerberos开启,superuser需要提供票据
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值