HiveServer2在启动时没有获得正确的Kerberos Principal

时间:2014-08-08 11:01:21

标签: hive kerberos

我们已将这些条目放在hive-site.xml中:

  • hive.server2.authentication:KERBEROS
  • hive.server2.authentication.kerberos.keytab:/tmp/hive.keytab
  • hive.server2.authentication.kerberos.principal:hive的hive / FQDN VM@xxxxxxxx.COM

在配置单元虚拟机上使用kinit命令,我们验证了Kerberos主体和密钥表文件是否有效:

  

kinit -t FILE:/tmp/hive.keytab -k hive / hive的FQDN VM@xxxxxxxx.COM

然后,如果我们这样做,

  

klist的

它在Ticket Cache中显示与默认Principal相同。

但是,当我们尝试使用:

启动HiveServer2时
  

sudo service hive-server2 start

它抛出异常: 启动HiveServer2 javax.security.auth.login.LoginException:Kerberos主体应该有3个部分:配置单元 在org.apache.hive.service.auth.HiveAuthFactory.getAuthTransFactory(HiveAuthFactory.java:127) 在org.apache.hive.service.cli.thrift.ThriftCLIService.run(ThriftCLIService.java:505) 在java.lang.Thread.run(Thread.java:679)

当我们尝试使用任何其他登录用户(例如User123)启动服务(使用./hiveserver2)时,它会抛出相同的异常: 启动HiveServer2 javax.security.auth.login.LoginException:Kerberos主体应该有3个部分: User123 在org.apache.hive.service.auth.HiveAuthFactory.getAuthTransFactory(HiveAuthFactory.java:127) 在org.apache.hive.service.cli.thrift.ThriftCLIService.run(ThriftCLIService.java:505) 在java.lang.Thread.run(Thread.java:679)

不应该从hive-site.xml而不是登录用户中选择Kerberos Principal?我们是否遗漏了某些内容。

- 我提前创建了一个hive VM@xxxxxxxx.COM的主要配置单元/ FQDN,并为它创建了一个keytab文件。 我们使用的是CDH 4.7(未使用CM安装),OEL6和Kerberos5

1 个答案:

答案 0 :(得分:0)

应该为HDFS和MR配置Kerberos secuirty,而不仅仅是HIVE。