我在official document之后为CDH 5.3.2安装了Kerberos。
我也跟着ZooKeeper Authentication配置了一个安全的ZooKeeper,我在其中执行了以下操作:
1)。为每个ZK服务器创建主体并导出其keytab文件;
2)。已配置相关文件,例如zoo.cfg
,jaas.conf
和java.env
;
但是当我尝试启动ZK Cluster时失败了。我检查了日志文件,并报告了以下例外情况:
2015-09-22 15:19:08,232 ERROR org.apache.zookeeper.server.quorum.QuorumPeerMain:意外异常,异常退出 java.io.IOException:无法配置服务器,因为SASL配置不允许ZooKeeper服务器正确验证自身:javax.security.auth.login.LoginException: 校验和失败 在org.apache.zookeeper.server.ServerCnxnFactory.configureSaslLogin(ServerCnxnFactory.java:207) 在org.apache.zookeeper.server.NIOServerCnxnFactory.configure(NIOServerCnxnFactory.java:87) 在org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:135) 在org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:116) 在org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:79)
检查总和失败。我不知道这意味着什么。
我确定我的Kerberized CDH运行正常,因为我可以访问HDFS并提交YARN作为相应的主体。此外,我可以通过命令kinit -k -t <path-to-keytab> <zookeeper/FQDN@REALM>
获得zookeeper的校长的门票。
那是什么原因造成的?任何建议将不胜感激。
答案 0 :(得分:0)
我有同样的问题。我通过克罗德拉管理器在kerberos管理中重新生成zookeeper keytabs来解决它。我在CDH的5.5.1版本中做到了这一点。
我希望这能帮到某人
答案 1 :(得分:0)
正如https://community.cloudera.com/t5/Cloudera-Manager-Installation/Kerberos-Authentication-Wizard-failing-to-generate-workable/m-p/25748#M4011所指出的,Cloudera管理器尝试使用tcp,但默认情况下KDC配置为仅使用udp!供参考:https://web.mit.edu/kerberos/krb5-1.12/doc/admin/conf_files/kdc_conf.html
解决:在你的kdc.conf中添加kdc_tcp_ports = 88
kdc_ports = ...
以下(88是kerberos的默认tcp端口)并重启服务:service krb5-kdc restart
。现在手动启动zookeeper和其他服务。