在我的组织,访问我们的网关下面的Hadoop集群:映射帐户
sudo su -
cd /etc/username/
kinit some_string/instance -k -t some_string.keytab
hadoop fs -ls
这工作完全正常,但我想了解究竟是什么正在进行。
当我做'whoami'显然它显示'根'。但是,在HDFS上创建上述方式的任何文件都将拥有者视为“some_string”,并将其组为“hdfs”。我既不能像任何其他用户那样启动也不能访问HDFS。这是为什么?
这是因为:Hadoop的HDFS守护进程被映射到kerberos主体(并且该主体的权证只能作为root用户访问?)并且该主体也映射到操作系统帐户some_string,这就是我所看到的HDFS上文件的所有者?如果是的话,定义的链接在哪里(hadoop守护进程主要os帐户)
我试着用google搜索很多,但找不到明确的答案,我的困惑。即使我用自己的用户登录HUE,我也没有对这些文件的写入权限,这也是我想了解如何解决的问题。
谢谢。
编辑:
$ klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: some_string/[email protected]
Valid starting Expires Service principal
03/02/16 21:06:19 03/03/16 21:06:19 krbtgt/[email protected]
renew until 03/02/16 21:06:19
我给问题添加了klist,你说'...在你的情况下用户是hdfs ...',但看起来不是。在校长中,用户是'some_string'。 – Gadam
@Gadam让我知道klist -k的输出some_string.keytab –
对于响应延迟感到抱歉。这里是:17:20:20 $ klist -k some_string.keytab Keytab名称:FILE:some_string.keytab KVNO Principal ---- ----------------- -------------------------------------------------- ------- 2 some_string/[email protected]。CORP(这最后一行重复6次) – Gadam