zookeeper创建子节点报NoChildrenForEphemeralsException问题
2016-06-21 12:40
603 查看
用ZOOKEEPER客户端向zookeeper的某一个节点添加子节点时出现以下错误:
org.apache.zookeeper.KeeperException$NoChildrenForEphemeralsException: KeeperErrorCode = NoChildrenForEphemerals for /xxxxx/xxxx/
at org.apache.zookeeper.KeeperException.create(KeeperException.java:117)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:783)
at org.apache.curator.framework.imps.CreateBuilderImpl$11.call(CreateBuilderImpl.java:721)
at org.apache.curator.framework.imps.CreateBuilderImpl$11.call(CreateBuilderImpl.java:704)
at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:108)
at org.apache.curator.framework.imps.CreateBuilderImpl.pathInForeground(CreateBuilderImpl.java:701)
at org.apache.curator.framework.imps.CreateBuilderImpl.protectedPathInForeground(CreateBuilderImpl.java:477)
at org.apache.curator.framework.imps.CreateBuilderImpl.forPath(CreateBuilderImpl.java:467)
at org.apache.curator.framework.imps.CreateBuilderImpl.forPath(CreateBuilderImpl.java:44)
at com.xxxx.utils.zookeeper.crawler.Main.main(Main1.java:14)
从报错可以看出是因为临时节点下不能创建子节点的原因:
所以解决方法是把要创建子节点的节点创建为永久性节点:
如用原生的zookeeper客户端如下:
zk.create(seqPath, null, ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
用curator客户端代码如下:
client.create().creatingParentsIfNeeded().withMode(CreateMode.PERSISTENT).forPath(xxxxxx);
org.apache.zookeeper.KeeperException$NoChildrenForEphemeralsException: KeeperErrorCode = NoChildrenForEphemerals for /xxxxx/xxxx/
at org.apache.zookeeper.KeeperException.create(KeeperException.java:117)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:783)
at org.apache.curator.framework.imps.CreateBuilderImpl$11.call(CreateBuilderImpl.java:721)
at org.apache.curator.framework.imps.CreateBuilderImpl$11.call(CreateBuilderImpl.java:704)
at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:108)
at org.apache.curator.framework.imps.CreateBuilderImpl.pathInForeground(CreateBuilderImpl.java:701)
at org.apache.curator.framework.imps.CreateBuilderImpl.protectedPathInForeground(CreateBuilderImpl.java:477)
at org.apache.curator.framework.imps.CreateBuilderImpl.forPath(CreateBuilderImpl.java:467)
at org.apache.curator.framework.imps.CreateBuilderImpl.forPath(CreateBuilderImpl.java:44)
at com.xxxx.utils.zookeeper.crawler.Main.main(Main1.java:14)
从报错可以看出是因为临时节点下不能创建子节点的原因:
所以解决方法是把要创建子节点的节点创建为永久性节点:
如用原生的zookeeper客户端如下:
zk.create(seqPath, null, ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
用curator客户端代码如下:
client.create().creatingParentsIfNeeded().withMode(CreateMode.PERSISTENT).forPath(xxxxxx);
相关文章推荐
- 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
- 什么是Docker?
- 来来,一起设计一个简单的活动发布系统
- QuickWebApi2:使用Lambda方式,完成对WebApi的开发和调用-文档的生成
- python hashlib模块
- linux小知识之终端
- Docker是什么?
- jfinal增加虚拟字段方法
- Android 使用SWIG生成Jni代码<转>
- Linux 容器的建立和简单管理
- 内存泄漏优化---Handler引发内存泄漏
- Android 轻松实现后台搭建+APP版本更新
- 【java】java实现在界面上显示当前月份的日历,并连接数据库的简易备忘录
- 使用JMS发布订阅topic,传送TextMe 4000 ssage
- 前端框架 EasyUI (2)页面布局 Layout
- linux ab
- 解决curl_error : SSL certificate problem: unable to get local issuer certificate
- 前端框架 EasyUI (1)熟悉一下EasyUI
- sha1(代码片段)
- git