ITPub博客

首页 > 应用开发 > IT综合 > otter异常——zookeeper重新初始化

otter异常——zookeeper重新初始化

原创 IT综合 作者:jx_yu 时间:2016-05-13 14:37:02 0 删除 编辑

问题描述    

公司有一套otter的测试环境,发现web页面打不开了,查看otter的log发现:


#otter Manager的log
2016-05-13 09:29:59.237 [] WARN  org.eclipse.jetty.servlet.ServletHandler - /channel_list.htm
com.alibaba.citrus.service.pipeline.PipelineException: Failed to invoke Valve[#2/3, level 3]: com.alibaba.citrus.turbine.pipeline.valve.PerformTemplateScreenValve#211aa79a:PerformTemplateScree
nValve
        at com.alibaba.citrus.service.pipeline.impl.PipelineImpl$PipelineContextImpl.invokeNext(PipelineImpl.java:161) ~[citrus-webx-all-3.2.0.jar:3.2.0]

.............................
Caused by: com.alibaba.citrus.webx.WebxException: Failed to execute screen: ChannelList
        at com.alibaba.citrus.turbine.pipeline.valve.PerformScreenValve.performScreenModule(PerformScreenValve.java:126) ~[citrus-webx-all-3.2.0.jar:3.2.0]
        at com.alibaba.citrus.turbine.pipeline.valve.PerformScreenValve.invoke(PerformScreenValve.java:74) ~[citrus-webx-all-3.2.0.jar:3.2.0]
        at com.alibaba.citrus.service.pipeline.impl.PipelineImpl$PipelineContextImpl.invokeNext(PipelineImpl.java:157) ~[citrus-webx-all-3.2.0.jar:3.2.0]
        ... 51 common frames omitted
Caused by: org.I0Itec.zkclient.exception.ZkNoNodeException: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /otter/channel/58/61/process

如上,可以看到是zookeeper中找不到相关信息 抛出的异常,通过配置文件:

~]# grep zook $OTTER_MANAGER_HOME/conf/otter.properties 
## default zookeeper address IP:port
otter.zookeeper.cluster.default = 192.168.1.1:2181
## default zookeeper sesstion timeout = 60s
otter.zookeeper.sessionTimeout = 60000

#跟运维的同事确认了下  测试环境的zookeeper前一天的确是出问题了(异常重启过),而且进入zookeeper查找异常的路径,的确不存在:



至此,想到的是能否重新配置otter复制的mysqlbinlog文件和位置,让其接着同步呢?

但是web管理页面无法打开,无法配置。最后在github开源项目 otter的提问里面找到类似的问题:
https://github.com/alibaba/otter/issues/88

otter开发者回答到

otter会在zookeeper存储一些节点信息,更换zookeeper后,需要复制节点数据,或者删除数据库中的channel、pipeline等表的数据内容
或者访问 http://域名/system_reduction.htm,点击一键修复

尝试使用下面的连接 修复

访问 http://otter_manager_ip:port/system_reduction.htm,在页面上 会出现一个“ 一键补全 ”按钮,点击此按钮即可 


再将所有canal的journalName和position 换成出问题之前的相对较近的一个位置即可


至此 实现了 更换zookeeper或者重新初始化zookeeper的目的


参考:
https://github.com/alibaba/otter
https://github.com/alibaba/otter/issues/88




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27000195/viewspace-2099256/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-05-23

  • 博文量
    80
  • 访问量
    876952