5

Curator 框架版本 - 4.3.0,Zookeeper 版本 - 5.5.0

我们在 Kubernetes 上部署了 apache atlas,它使用 Zookeeper 从两个 atlas pod 中选出一个作为领导者。我们正在运行三个 zookeeper pod(3 节点集群),一个 pod 宕机应该不会产生任何问题。当一个 zookeeper pod 关闭时,zookeeper 集群仍然健康,并且有一个 zookeeper 领导者可用。我通过执行到 zookeeper pod 并检查 zookeeper 状态来测试这一点。但是策展人框架会引发以下错误-

[main:] ~ Background exception was not retry-able or retry gave up (CuratorFrameworkImpl:685)
java.net.UnknownHostException: zookeeper-2.zookeeper-headless.atlas.svc.cluster.local: Name or service not known
    at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
    at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:929)
    at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1324)
    at java.net.InetAddress.getAllByName0(InetAddress.java:1277)
    at java.net.InetAddress.getAllByName(InetAddress.java:1193)
    at java.net.InetAddress.getAllByName(InetAddress.java:1127)
    at org.apache.zookeeper.client.StaticHostProvider.<init>(StaticHostProvider.java:61)
    at org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:445)
    at org.apache.curator.utils.DefaultZookeeperFactory.newZooKeeper(DefaultZookeeperFactory.java:29)
    at org.apache.curator.framework.imps.CuratorFrameworkImpl$2.newZooKeeper(CuratorFrameworkImpl.java:196)
    at org.apache.curator.HandleHolder$1.getZooKeeper(HandleHolder.java:101)
    at org.apache.curator.HandleHolder.getZooKeeper(HandleHolder.java:57)
    at org.apache.curator.ConnectionState.reset(ConnectionState.java:201)
    at org.apache.curator.ConnectionState.start(ConnectionState.java:111)
    at org.apache.curator.CuratorZookeeperClient.start(CuratorZookeeperClient.java:214)
    at org.apache.curator.framework.imps.CuratorFrameworkImpl.start(CuratorFrameworkImpl.java:314)
    at org.apache.atlas.web.service.CuratorFactory.initializeCuratorFramework(CuratorFactory.java:88)
    at org.apache.atlas.web.service.CuratorFactory.<init>(CuratorFactory.java:78)
    at org.apache.atlas.web.service.CuratorFactory.<init>(CuratorFactory.java:73)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1152)

zookeeperConnectionString = "zookeeper-0.zookeeper-headless.atlas.svc.cluster.local:2181,zookeeper-1.zookeeper-headless.atlas.svc.cluster.local:2181,zookeeper-2.zookeeper-headless.atlas.svc .cluster.local:2181"

我们面临的问题是,当我们尝试运行 leaderLatch.start() 时,它不会返回任何错误,但相应的 znode 并未在 zookeeper 中创建。

4

0 回答 0