游侠和Kerberos

时间:2018-11-08 09:37:54

标签: hadoop kerberos

我有一个三节点群集,上面同时安装了Kerberos和Ranger。

对于我作为普通用户使用的一个用例(tom),我有点困惑。我的/ home / tom中有hdfs.headless.keytabhbase.headless.keytab文件,因此我可以使用

[tom@master keytabs]$ ls /home/tom -l
total 8
-r--r----- 1 tom tom 373 Oct 26 02:32 hbase.headless.keytab
-r--r----- 1 tom tom 368 Nov  8 18:59 hdfs.headless.keytab

因此,如果要写入HDFS,我总是可以通过上述文件来启动Kerberos票证:

[tom@master root]$ klist
klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_500)
[tom@master keytabs]$ kinit -kt /home/tom/hdfs.headless.keytab hdfs-bazargani_lab@BAZARGANI.COM
[tom@master keytabs]$ klist
Ticket cache: FILE:/tmp/krb5cc_500
Default principal: hdfs-bazargani_lab@BAZARGANI.COM

Valid starting     Expires            Service principal
11/08/18 19:12:10  11/09/18 19:12:10  krbtgt/BAZARGANI.COM@BAZARGANI.COM
        renew until 11/08/18 19:12:10

现在我要激活HBase的票证:

[tom@master keytabs]$ kinit -kt /home/tom/hbase.headless.keytab hbase-bazargani_lab@BAZARGANI.COM
[tom@master keytabs]$ klist
Ticket cache: FILE:/tmp/krb5cc_500
Default principal: hbase-bazargani_lab@BAZARGANI.COM

Valid starting     Expires            Service principal
11/08/18 19:30:01  11/09/18 19:30:01  krbtgt/BAZARGANI.COM@BAZARGANI.COM
        renew until 11/08/18 19:30:01

现在,当我运行以下命令(写入HDFS)时,我得到:

[tom@master keytabs]$ hdfs dfs -mkdir /tom
mkdir: Permission denied: user=hbase, access=WRITE, inode="/tom":hdfs:hdfs:drwxr-xr-x

我不确定为什么在写HDFS时先在HBase之前写过HDFS票证和tom票证的情况下不能执行上述操作,但现在我将其视为HBase用户并且不会让我写HDFS。。由于我不知道密码,我无法使用hdfs。。有人可以解释我如何设置一个名为tom的主体,该主体可以执行HBase和HDFS票证操作吗?

1 个答案:

答案 0 :(得分:0)

AFAIK更好的方法是创建一个名为“ tom.headless.keytab”的密钥标签,并创建一个名为“ tom @ bozxxx”的密钥标签 我假设Ranger上已经有用户tom了,如果没有,您可以同步用户(基于Ranger的配置方式,是否配置为从文件读取还是从Unix用户或Ldap读取),或者只是创建了快捷方式用户从Ranger UI中获取“ tom”。一旦创建了用户,就可以在HDFS和HBASE上访问tom用户。然后执行Kinit然后可以运行命令