Apache zookeeper 无法在分布式模式下启动演练

Apache zookeeper 无法在分布式模式下启动演练,apache-zookeeper,apache-drill,Apache Zookeeper,Apache Drill,我正在尝试设置drillv1.18的运行。面对下面的错误 drill-override.conf指向在端口12181上运行的zookeeper。在分布式模式下启动时,会出现以下日志输出失败。但是嵌入式模式没有问题。 这看起来像是权限问题,但zookeeper、drill、zookeeper数据目录都在同一用户下运行 2020-05-10 16:23:01,160 [main] DEBUG o.apache.drill.exec.server.Drillbit - Construction sta

我正在尝试设置drillv1.18的运行。面对下面的错误

drill-override.conf指向在端口12181上运行的zookeeper。在分布式模式下启动时,会出现以下日志输出失败。但是嵌入式模式没有问题。 这看起来像是权限问题,但zookeeper、drill、zookeeper数据目录都在同一用户下运行

2020-05-10 16:23:01,160 [main] DEBUG o.apache.drill.exec.server.Drillbit - Construction started.
2020-05-10 16:23:01,448 [main] DEBUG o.a.d.e.c.zk.ZKClusterCoordinator - Connect localhost:12181, zkRoot drill, clusterId: drillbits1
2020-05-10 16:23:01,531 [main] INFO  o.a.d.e.s.s.PersistentStoreRegistry - Using the configured PStoreProvider class: 'org.apache.drill.exec.store.sys.store.provider.ZookeeperPersistentStoreProvider'.
2020-05-10 16:23:01,718 [main] DEBUG o.a.drill.exec.ssl.SSLConfigServer - Using Hadoop configuration for SSL
2020-05-10 16:23:01,718 [main] DEBUG o.a.drill.exec.ssl.SSLConfigServer - Hadoop SSL configuration file: ssl-server.xml
2020-05-10 16:23:01,731 [main] DEBUG org.apache.drill.exec.ssl.SSLConfig - Initialized SSL context.
2020-05-10 16:23:01,731 [main] INFO  o.a.drill.exec.rpc.user.UserServer - Rpc server configured to use TLS protocol 'TLSv1.2'
2020-05-10 16:23:01,738 [main] INFO  o.apache.drill.exec.server.Drillbit - Construction completed (577 ms).
2020-05-10 16:23:01,738 [main] DEBUG o.apache.drill.exec.server.Drillbit - Startup begun.
2020-05-10 16:23:01,738 [main] DEBUG o.a.d.e.c.zk.ZKClusterCoordinator - Starting ZKClusterCoordination.
2020-05-10 16:23:03,775 [main] ERROR o.apache.drill.exec.server.Drillbit - Failure during initial startup of Drillbit.
org.apache.zookeeper.KeeperException$UnimplementedException: KeeperErrorCode = Unimplemented for /drill
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:106)
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:54)
    at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:1538)
    at org.apache.curator.utils.ZKPaths.mkdirs(ZKPaths.java:351)
    at org.apache.curator.framework.imps.ExistsBuilderImpl$2.call(ExistsBuilderImpl.java:230)
    at org.apache.curator.framework.imps.ExistsBuilderImpl$2.call(ExistsBuilderImpl.java:224)
    at org.apache.curator.connection.StandardConnectionHandlingPolicy.callWithRetry(StandardConnectionHandlingPolicy.java:67)
    at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:81)
    at org.apache.curator.framework.imps.ExistsBuilderImpl.pathInForeground(ExistsBuilderImpl.java:221)
    at org.apache.curator.framework.imps.ExistsBuilderImpl.forPath(ExistsBuilderImpl.java:206)
    at org.apache.curator.framework.imps.ExistsBuilderImpl.forPath(ExistsBuilderImpl.java:35)
    at org.apache.curator.framework.imps.CuratorFrameworkImpl.createContainers(CuratorFrameworkImpl.java:265)
    at org.apache.curator.framework.EnsureContainers.internalEnsure(EnsureContainers.java:69)
    at org.apache.curator.framework.EnsureContainers.ensure(EnsureContainers.java:53)
    at org.apache.curator.framework.recipes.cache.PathChildrenCache.ensurePath(PathChildrenCache.java:596)
    at org.apache.curator.framework.recipes.cache.PathChildrenCache.rebuild(PathChildrenCache.java:327)
    at org.apache.curator.framework.recipes.cache.PathChildrenCache.start(PathChildrenCache.java:304)
    at org.apache.curator.framework.recipes.cache.PathChildrenCache.start(PathChildrenCache.java:252)
    at org.apache.curator.x.discovery.details.ServiceCacheImpl.start(ServiceCacheImpl.java:99)
    at org.apache.drill.exec.coord.zk.ZKClusterCoordinator.start(ZKClusterCoordinator.java:145)
    at org.apache.drill.exec.server.Drillbit.run(Drillbit.java:220)
    at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:584)
    at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:554)
    at org.apache.drill.exec.server.Drillbit.main(Drillbit.java:550)

版本1.17在以分布式模式启动时没有问题。

这里的问题是zookeeper版本。也许您使用的是3.4.X版本,但当前版本的Drill需要3.5.X。作为一种解决方法,您可以将
jars/ext/zookeeper-3.5.7.jar
jars/ext/zookeeper-jute-3.5.7.jar
中的zookeeper jar替换为与Zookeer版本对应的jar。

除了Vova Vysotskyi的答案外,您还可以在演练文档中找到有关此问题的更多信息:

从演练1.18开始,捆绑的ZooKeeper库升级到版本3.5.7,防止连接到较旧的(<3.5)ZooKeeper集群。要连接ZooKeeper<3.5集群,请将
${DRILL_HOME}/JARs/ext
中的ZooKeeper库jar替换为ZooKeeper-3.4.x.jar,然后重新启动集群


谢谢我下载了zookeeper 3.5.7并使用了它。但是如果我用3.4替换3.5的罐子会有什么帮助呢?我的理解是,3.4中根本没有jars演练所寻找的内容。演练使用Apache Curator与Zookeeper协作,Curator根据类路径中Zookeeper的版本选择使用哪些方法。