我们已将这些条目放在hive-site.xml中:
在配置单元虚拟机上使用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
答案 0 :(得分:0)
应该为HDFS和MR配置Kerberos secuirty,而不仅仅是HIVE。