首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache在尝试创建zNodes时未实现错误

Apache在尝试创建zNodes时未实现错误
EN

Stack Overflow用户
提问于 2016-03-01 22:08:54
回答 6查看 12.7K关注 0票数 21

我正试图将Apache管理器与一个被移植的动物园管理员实例一起使用,无论我如何尝试连接,我总是以一个

org.apache.zookeeper.KeeperException$UnimplementedException: KeeperErrorCode =未实现的.

错误。我试着把文档弄清楚了,但我什么也没得到。我已经登录到动物园管理员CLI并确保端口号是正确的:

代码语言:javascript
复制
snerd@powerglove:~$ docker ps CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS   NAMES 31f1093495ba        compose_zookeeper   "/opt/zookeeper/bin/   3 weeks ago         Up About a minute   0.0.0.0:32770->2181/tcp,
0.0.0.0:32769->2888/tcp, 0.0.0.0:32768->3888/tcp   zookeeper

下面是我试图使用的代码:

代码语言:javascript
复制
public class App {
    public static void main( String[] args ) {
        CuratorFramework client = CuratorFrameworkFactory.newClient("0.0.0.0:32770", new RetryUntilElapsed(3000, 1000));
        client.start();

            try {
                client.create().forPath("/larry-smells/foop", "tuna?".getBytes());
            } catch (Exception e) {
                System.out.println(e.toString());
            }

    }
}

据我从策展人入门页面中可以看出,这应该是可行的。我遗漏了什么?

edit1刚刚发现,我可以从动物园管理员的集合中提取数据:

代码语言:javascript
复制
System.out.println(new String(curatorFramework.getData().forPath("/larry-smells"))); 

但是create命令仍然在爆炸。

edit2

错误的堆栈跟踪:

org.apache.zookeeper.KeeperException$UnimplementedException: KeeperErrorCode =未实现的/larry-嗅觉/foop at org.apache.zookeeper.KeeperException.create(KeeperException.java:103) at org.apache.zookeeper.KeeperException.create(KeeperException.java:51) at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:1297) at org.apache.curator.framework.imps.CreateBuilderImpl$17.call(CreateBuilderImpl.java:1040) at org.apache.curator.framework.imps.CreateBuilderImpl$17.call(CreateBuilderImpl.org.apache.curator.connection.StandardConnectionHandlingPolicy.callWithRetry(StandardConnectionHandlingPolicy.java:67) at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:99) at org.apache.curator.framework.imps.CreateBuilderImpl.pathInForeground(CreateBuilderImpl.java:1020) at org.apache.curator.framework.imps.CreateBuilderImpl.protectedPathInForeground(CreateBuilderImpl.java:501) at org.apache.curator.framework.imps.CreateBuilderImpl.forPath(CreateBuilderImpl.java:491) atorg.apache.curator.framework.imps.CreateBuilderImpl$4.forPath(CreateBuilderImpl.java:367) at org.apache.curator.framework.imps.CreateBuilderImpl$4.forPath(CreateBuilderImpl.java:309) at com.mycompany.app.App.main(App.java:35)

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2016-03-02 17:20:59

编辑:很明显,如果你用错了馆长和动物园管理员的组合,这个错误就会发生。来自curator.apache.org

馆长2.x.x -兼容ZooKeeper 3.4.x和ZooKeeper 3.5.x 策展人3.x.x只与ZooKeeper 3.5.x兼容,并包括对新特性(如动态重新配置等)的支持。

很难用错误代码而不是堆栈跟踪来确定您的问题,但我建议您进行一些改进,以使应用程序更加稳定:

代码语言:javascript
复制
public class App {
    public static void main( String[] args ) {
        CuratorFramework client = CuratorFrameworkFactory.newClient("0.0.0.0:32770", new RetryUntilElapsed(3000, 1000));
        client.start();

        try {
            //make sure you're connected to zookeeper.
            client.blockUntilConnected();

            //Make sure the parents are created.
            client.create().creatingParentsIfNeeded().forPath("/larry-smells/foop", "tuna?".getBytes());
        } catch (Exception e) {
            System.out.println(e.toString());
            }

    }
}
票数 45
EN

Stack Overflow用户

发布于 2018-10-09 10:27:23

我也遇到了类似的异常,我使用了下面的依赖项,这些依赖项是兼容的,并帮助我解决异常。

代码语言:javascript
复制
    <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>3.4.6</version>
    </dependency>

    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-framework</artifactId>
        <version>4.0.1</version>
    </dependency>

    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-x-discovery</artifactId>
        <version>4.0.1</version>
    </dependency>
票数 3
EN

Stack Overflow用户

发布于 2017-08-10 21:41:02

我也有同样的问题。

我试着在练习6上使用inTransaction (),如这里所解释的:http://www.programcreek.com/java-api-examples/index.php?api=org.apache.curator.framework.CuratorFramework,并且似乎有效。

代码语言:javascript
复制
client.inTransaction ().create().forPath("/larry-smells/foop", "tuna?".getBytes()).and ().commit ();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35734590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档