ZooKeeper故障处理
Zookeeper一般会出现以下两种故障:
1.Zookeeper进程挂掉;
2.Zookeeper进程还在,但不提供服务;(提示:ThisZooKeeperinstanceisnotcurrentlyservingrequests)
Zookeeper故障监控:
1.针对zookeeper进程的监控,直接监控器进程是否存在即可;(zookeeper进程名字:QuorumPeerMain)
2.针对zookeeper不能提供服务,需要通过linuxshell命令监控;
当在linux下输入以下命令并得到下面的结果时,说明zookeeper还活着,但不提供服务了。(这种情况几率大)
[root@192.168.1.1bin]#echostat|nclocalhost2181
ThisZooKeeperinstanceisnotcurrentlyservingrequests
当在linux下输入以下命令并得到下面的结果时,说明zookeeper服务正常。
[root@192.168.1.1bin]#echostat|nclocalhost2181
Zookeeperversion:3.4.6-1569965,builton02/20/201409:09GMT
Clients:
/192.168.1.12:29432[1](queued=0,recved=13,sent=13)
/127.0.0.1:43448[0](queued=0,recved=1,sent=0)
Latencymin/avg/max:0/1/11
Received:235
Sent:17
Connections:2
Outstanding:0
Zxid:0x100000004
Mode:leader
Nodecount:4
Zookeeper故障处理:
1.当zookeeper出现以上两种故障或未知故障时,请先尝试重启zookeeper;
(启动命令:/usr/zookeeper-3.4.6/bin/目录下执行./zkServer.shstart)
2.重启之后首先要输入命令jps,看zookeeper进程(QuorumPeerMain)是否起来;
3.如果zookeeper进程起来,再输入命令echostat|nclocalhost2181,看服务是否正常(如果数据量大可能需要等几分钟才能显示正确);
4.如果第2步的进程没有起来,或者第3步的显示不能提供服务,则需要清除以下数据后再试1、2、3步;
需要清除下面两个文件夹下的所有数据(最好将数据备份到别的地方或重命名文件夹名字):
/var/zookeeper/data/version-2
/var/zookeeper/logs/version-2
5.如果不幸走到了这一步,则意味着第4步重试后第2步进程还是没有起来或第3步不能提供服务,这时需要重新搭建一套zookeeper服务,并修改所有使用zookeeper服务的hosts。
Zookeeper服务搭建:
1.将附件中的安装包解压到linux机器上的/usr/目录下;如:/usr/zookeeper-3.4.6
2.修改附件中的zoo.cfg文件,将文件中的的ip修改为新机器的ip;
server.1=192.168.1.1:2888:3888
server.2=192.168.1.2:2888:3888
server.3=192.168.1.3:2888:3888
3.将修改完的zoo.cfg文件拷贝到解压目录/usr/zookeeper-3.4.6/conf/;
4.在新机器上创建以下目录和文件:
/var/zookeeper/data/
/var/zookeeper/logs/
/var/zookeeper/data/myid该文件下要写上第2步中ip对应的server.后面的数字,比如192.168.1.1 ip对应的是server.1,则该机器上的myid中的内容就是1。其他的都类似。
5.到此为止zookeeper服务就搭建完毕了,下面就需要启动zookeeper了。
(启动命令:/usr/zookeeper-3.4.6/bin/目录下执行./zkServer.shstart)
附件文件地址:
http://down.51cto.com/data/2114349
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。