codis启动dashboard报[PANIC] create zk node failed解决办法
今天早上启动 ./bin/codis-config dashboard,发现无法启动,报错:./bin/codis-config dashboard
2016/03/10 09:39:14 dashboard.go:160: [INFO] dashboard listening on addr: :18087
2016/03/10 09:39:15 dashboard.go:234: [PANIC] create zk node failed
[error]: dashboard already exists: {"addr": "192.168.8.44:18087", "pid": 21121}
[stack]:
3 /usr/local/codis/src/github.com/CodisLabs/codis/cmd/cconfig/dashboard.go:234
main.runDashboard
2 /usr/local/codis/src/github.com/CodisLabs/codis/cmd/cconfig/dashboard.go:54
main.cmdDashboard
1 /usr/local/codis/src/github.com/CodisLabs/codis/cmd/cconfig/main.go:85
main.runCommand
0 /usr/local/codis/src/github.com/CodisLabs/codis/cmd/cconfig/main.go:152
main.main
... ...
然后查了一下官网的FAQ, 是因为使用kill -9 pid关闭过服务导致,官方这样解析:无论是proxy还是dashboard,都会在zk上注册自己的节点,同时在程序正常退出的时候会删掉对应的节点,但如果异常退出或试用kill -9 {pid}就会导致zk的节点无法删除,在下一次启动的时候会报“zk: node already exists”的错误。
因此关闭服务的时候直接用kill {pid}不要-9,同时如果无法启动并且确认没有其他运行中的进程占用zk上的节点,可以在zk上手动删除/zk/codis/db_test/dashboard 或/zk/codis/db_test/fence/{host:port}.
具体解决办法:
# ./zkCli.sh -server 127.0.0.1:2181
[zk: 127.0.0.1:2181(CONNECTED) 0] ls /zk/codis/db_test
[migrate_tasks, actions, LOCK, ActionResponse, slots, fence, proxy, servers, dashboard]
[zk: 127.0.0.1:2181(CONNECTED) 1] rmr /zk/codis/db_test/dashboard 删除
[zk: 127.0.0.1:2181(CONNECTED) 4] quit 退出
另外补充一下,zk常用的一些其他命令
ls(查看当前节点数据),
ls2(查看当前节点数据并能看到更新次数等数据) ,
create(创建一个节点) ,
get(得到一个节点,包含数据和更新次数等数据),
set(修改节点)
delete(删除一个节点)
评论