【发布时间】:2019-08-05 17:22:36
【问题描述】:
我正在尝试对我的 HBase 集群进行 kerberise,但我遇到了 Zookeeper 的一些问题。当我启动 Hbase 时,我在主日志中收到此错误:
ERROR [main-SendThread(X.X.X.X:2181)] client.ZooKeeperSaslClient: An error: (java.security.PrivilegedActionException: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Server not found in Kerberos database (7) - LOOKING_UP_SERVER)]) occurred when evaluating Zookeeper Quorum Member's received SASL token. Zookeeper Client will go to AUTH_FAILED state.
ERROR [main-SendThread(X.X.X.X:2181)] zookeeper.ClientCnxn: SASL authentication with Zookeeper Quorum member failed: javax.security.sasl.SaslException: An error: (java.security.PrivilegedActionException: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Server not found in Kerberos database (7) - LOOKING_UP_SERVER)]) occurred when evaluating Zookeeper Quorum Member's received SASL token. Zookeeper Client will go to AUTH_FAILED state.
DEBUG [main-EventThread] zookeeper.ZKWatcher: master:16000-0x16c236187be0000, quorum=Y.Y.Y.Y:2181,X.X.X.X:2181, baseZNode=/hbase Received ZooKeeper Event, type=None, state=AuthFailed, path=null
DEBUG [main] zookeeper.ZooKeeper: Close called on already closed client
在 Zookeeper 日志中,我得到:
WARN [QuorumPeer[myid=0]/0:0:0:0:0:0:0:0:2181] quorum.Learner: Unexpected exception, tries=0, connecting to /X.X.X.X:2888
java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.apache.zookeeper.server.quorum.Learner.connectToLeader(Learner.java:229)
at org.apache.zookeeper.server.quorum.Follower.followLeader(Follower.java:71)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:937)
我已验证我的防火墙,端口已打开
对于配置,我遵循 HBase 参考指南:
http://hbase.apache.org/book.html#zk.sasl.auth
起初我认为这是我的 keytab 的问题,但 Hadoop 可以正常工作。
我运行 HBase 2.0.5,Hadoop 3.1.2,Zookeeper 是 HBase 提供的。
【问题讨论】:
-
引用 “Hadoop 和 Kerberos,超越大门的疯狂” steveloughran.gitbooks.io/kerberos_and_hadoop/content/sections/…
Server not found in Kerberos Database可能意味着“DNS 一团糟”。检查您的 ZK 主机名的 DNS 查找和反向查找。也适用于您的 HBase 主机名。此外,请确保您的krb5.conf具有将网络域(和/或特定名称或主机名)映射到 Kerberos 领域的规则。并确保 ZK 客户端库支持 IP V6,因为您似乎正在使用它...... -
@SamsonScharfrichter 这有点奇怪,我实际上没有使用任何域。我只在 /etc/hosts 中设置了我的主机名,所以它可能来自这里?没有kerberos它工作得很好,所以我很困惑。另外,我不知道为什么它显示 IPV6 地址,我的配置是用 v4 地址设置的。
标签: hadoop hbase apache-zookeeper kerberos