zookeeper 集群搭建

目标:搭建一个zk的集群(5个节点)

 

zk的下载:

wget http://apache.fayea.com/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz

 

解压:

tar -xvf zookeeper-3.4.9.tar.gz 

 

可执行脚本简介: 

zkCleanup—清理ZooKeeper历史数据,包括事物日志文件和快照数据文件。 

zkCli—ZooKeeper的一个简易客户端。 

zkEnv—设置ZooK的环境变量。 

zkServer—ZooKeeper服务的启动、停止和重启脚本。

添加myid文件

(在zoo.cfg 文件中配置的dataDir=/home/q/www/tools/zk/zk1/data/ 对应的下面):

 

sudo mkdir /home/q/www/tools/zk/zk3/data
sudo echo 1>/home/q/www/tools/zk/zk1/data/myid 

 

 改下配置:复制5份:

#zoo_sample.cfg文件重命名为zoo.cfg 
sudo cp zoo_sample.cfg zoo.cfg

 sudo cp -r zookeeper-3.4.9 zk1
 sudo cp -R zookeeper-3.4.9 zk1
 sudo cp -R zookeeper-3.4.9 zk2
 sudo cp -R zookeeper-3.4.9 zk3
 sudo cp -R zookeeper-3.4.9 zk4
 sudo cp -R zookeeper-3.4.9 zk5

 

修改配置: 

zk1 zoo.cfg的配置为:

################# ZK 1 #######################################

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/home/q/www/tools/zk/zk1/data/

clientPort=2182

maxClientCnxns=60

dataLogDir=/home/q/www/tools/zk/zk1/datalog

server.1=127.0.0.1:2881:3881

server.2=127.0.0.1:2882:3882

server.3=127.0.0.1:2883:3883

server.4=127.0.0.1:2884:3884

server.5=127.0.0.1:2885:3885

################# ZK 2 #######################################

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/home/q/www/tools/zk/zk2/data/

clientPort=2183

maxClientCnxns=60

dataLogDir=/home/q/www/tools/zk/zk2/datalog

server.1=127.0.0.1:2881:3881

server.2=127.0.0.1:2882:3882

server.3=127.0.0.1:2883:3883

server.4=127.0.0.1:2884:3884

server.5=127.0.0.1:2885:3885

################# ZK 3 #######################################

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/home/q/www/tools/zk/zk3/data/

clientPort=2184

maxClientCnxns=60

dataLogDir=/home/q/www/tools/zk/zk3/datalog

server.1=127.0.0.1:2881:3881

server.2=127.0.0.1:2882:3882

server.3=127.0.0.1:2883:3883

server.4=127.0.0.1:2884:3884

server.5=127.0.0.1:2885:3885

################# ZK 4 #######################################

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/home/q/www/tools/zk/zk4/data/

clientPort=2185

maxClientCnxns=60

dataLogDir=/home/q/www/tools/zk/zk4/datalog

server.1=127.0.0.1:2881:3881

server.2=127.0.0.1:2882:3882

server.3=127.0.0.1:2883:3883

server.4=127.0.0.1:2884:3884

server.5=127.0.0.1:2885:3885

################# ZK 5 #######################################

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/home/q/www/tools/zk/zk5/data/

clientPort=2186

maxClientCnxns=60

dataLogDir=/home/q/www/tools/zk/zk5/datalog

server.1=127.0.0.1:2881:3881

server.2=127.0.0.1:2882:3882

server.3=127.0.0.1:2883:3883

server.4=127.0.0.1:2884:3884

server.5=127.0.0.1:2885:3885

################# ZK config end #######################################

启动集群:

#启动
sudo /home/q/www/tools/zk/zk1/bin/zkServer.sh start
#重启
sudo /home/q/www/tools/zk/zk1/bin/zkServer.sh restart

客户端连接某一个机器:

sudo /home/q/www/tools/zk/zk4/bin/zkCli.sh -server 127.0.0.1:2183

#执行操作
get /
ls /

查看命令:

#查看当前的客户端连接数量,当前的Mode 模式(follower/leader)
echo stat|nc 127.0.0.1 2183
#这样也可以查看当前的zk的 Mode
sudo /home/q/www/tools/zk/zk5/bin/zkServer.sh   status

#查看当前的zk配置
echo conf|nc 127.0.0.1 2183
#查看当前zk的状态
echo ruok|nc 127.0.0.1 2183
  • 1. 可以通过命令:echo stat|nc 127.0.0.1 2181 来查看哪个节点被选择作为follower或者leader
  • 2. 使用echo ruok|nc 127.0.0.1 2181 测试是否启动了该Server,若回复imok表示已经启动。
  • 3. echo dump| nc 127.0.0.1 2181 ,列出未经处理的会话和临时节点。
  • 4. echo kill | nc 127.0.0.1 2181 ,关掉server
  • 5. echo conf | nc 127.0.0.1 2181 ,输出相关服务配置的详细信息。
  • 6. echo cons | nc 127.0.0.1 2181 ,列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息。
  • 7. echo envi |nc 127.0.0.1 2181 ,输出关于服务环境的详细信息(区别于 conf 命令)。
  • 8. echo reqs | nc 127.0.0.1 2181 ,列出未经处理的请求。
  • 9. echo wchs | nc 127.0.0.1 2181 ,列出服务器 watch 的详细信息。
  • 10. echo wchc | nc 127.0.0.1 2181 ,通过 session 列出服务器 watch 的详细信息,它的输出是一个与 watch 相关的会话的列表。
  • 11. echo wchp | nc 127.0.0.1 2181 ,通过路径列出服务器 watch 的详细信息。它输出一个与 session 相关的路径。

实验:

 5 台 zk ,stop 两台 能正常工作

sudo /home/q/www/tools/zk/zk1/bin/zkServer.sh stop

sudo /home/q/www/tools/zk/zk4/bin/zkServer.sh stop

执行:

sudo /home/q/www/tools/zk/zk4/bin/zkServer.sh   status

 输出:

ZooKeeper JMX enabled by default

Using config: /home/q/www/tools/zk/zk4/bin/../conf/zoo.cfg

Error contacting service. It is probably not running.

执行:

sudo /home/q/www/tools/zk/zk5/bin/zkServer.sh   status

输出:(集群正常存在)

ZooKeeper JMX enabled by default

Using config: /home/q/www/tools/zk/zk5/bin/../conf/zoo.cfg

Mode: follower

继续杀掉一台:

sudo /home/q/www/tools/zk/zk2/bin/zkServer.sh stop

检查:(此时集群彻底失败了,不超过1/2的机器死掉无影响,否则集群会挂掉)

sudo /home/q/www/tools/zk/zk5/bin/zkServer.sh   status 

 输出:

ZooKeeper JMX enabled by default

Using config: /home/q/www/tools/zk/zk5/bin/../conf/zoo.cfg

Error contacting service. It is probably not running.

继续执行:(启动zk2)

sudo /home/q/www/tools/zk/zk2/bin/zkServer.sh start

检查zk5:(此时集群恢复了正常)

sudo /home/q/www/tools/zk/zk5/bin/zkServer.sh   status 

输出:

ZooKeeper JMX enabled by default

Using config: /home/q/www/tools/zk/zk5/bin/../conf/zoo.cfg

Mode: leader

猜你喜欢

转载自wangxinchun.iteye.com/blog/2354196