zookeeper 版本为zookeeper 3.4.8
操作系统为ubuntu 12.04 64位
zookeeper 单机搭建
解压zookeeper 包
tar -zxvf /mnt/hgfs/mnt/zookeeper-3.4.8.tar.gz -C /root/software/
进入 zookeeper 目录
cd zookeeper-3.4.8/
拷贝一份配置文件
cp conf/zoo_sample.cfg conf/zoo.cfg
创建zookeeper 的数据目录
mkdir -p /root/software/zookeeper-3.4.8/zookeeperData
在zoo.cfg 配置文件上配置如下内容
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/root/software/zookeeper-3.4.8/zookeeperData/data dataLogDir=/root/software/zookeeper-3.4.8/zookeeperData/log clientPort=2181 server.1=chen:2888:3888
注意:
server.1=chen:2888:3888 , chen 是我自己机器的HOSTNAME,大家可以根据自己的真实情况去修改
创建zookeeper 的data 和log 目录
mkdir -p /root/software/zookeeper-3.4.8/zookeeperData/data mkdir -p /root/software/zookeeper-3.4.8/zookeeperData/log
创建一个myid 的文件
touch /root/software/zookeeper-3.4.8/zookeeperData/data/myid
给myid 文件写入数值
echo 1 > /root/software/zookeeper-3.4.8/zookeeperData/data/myid
这里我介绍一下,为什么要向myid 文件写入一个 "1" 这个值。
其实这个值来自于zoo.cfg 文件中 server.1=??? 这个参数,如果我们在部署伪集群或者分布式环境时,就会看到有多个server.? 这种参数了
启动zookeeper 服务
bin/zkServer.sh start
查看zookeeper 的节点状态
bin/zkServer.sh status
由于这个是单机部署,所以状态显示和集群部署是不一样的
ZooKeeper JMX enabled by default Using config: /root/software/zookeeper-3.4.8/bin/../conf/zoo.cfg Mode: standalone
zookeeper 伪集群部署
先创建一个zk 的总目录
mkdir -p /root/software/zk
在zk 目录上创建三个目录
mkdir -p /root/software/zk/zk1 mkdir -p /root/software/zk/zk2 mkdir -p /root/software/zk/zk3
解压zookeeper 文件到zk 的子目录里
tar -zxvf /mnt/hgfs/mnt/zookeeper-3.4.8.tar.gz -C /root/software/zk/zk1/ tar -zxvf /mnt/hgfs/mnt/zookeeper-3.4.8.tar.gz -C /root/software/zk/zk2/ tar -zxvf /mnt/hgfs/mnt/zookeeper-3.4.8.tar.gz -C /root/software/zk/zk3/
为各个zk 创建一个zoo.cfg 文件
cp /root/software/zk/zk1/zookeeper-3.4.8/conf/zoo_sample.cfg /root/software/zk/zk1/zookeeper-3.4.8/conf/zoo.cfg cp /root/software/zk/zk2/zookeeper-3.4.8/conf/zoo_sample.cfg /root/software/zk/zk2/zookeeper-3.4.8/conf/zoo.cfg cp /root/software/zk/zk3/zookeeper-3.4.8/conf/zoo_sample.cfg /root/software/zk/zk3/zookeeper-3.4.8/conf/zoo.cfg
为各个zk 创建data 目录
mkdir -p /root/software/zk/zk1/zookeeper-3.4.8/zookeeperData mkdir -p /root/software/zk/zk2/zookeeper-3.4.8/zookeeperData mkdir -p /root/software/zk/zk3/zookeeper-3.4.8/zookeeperData
对zk1 的zoo.cfg 配置修改,/root/software/zk/zk1/zookeeper-3.4.8/conf/zoo.cfg
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/root/software/zk/zk1/zookeeper-3.4.8/zookeeperData/data dataLogDir=/root/software/zk/zk1/zookeeper-3.4.8/zookeeperData/log clientPort=2181 server.1=chen:2887:3887 server.2=chen:2888:3888 server.3=chen:2889:3889
对zk2 的zoo.cfg 配置修改,/root/software/zk/zk2/zookeeper-3.4.8/conf/zoo.cfg
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/root/software/zk/zk2/zookeeper-3.4.8/zookeeperData/data dataLogDir=/root/software/zk/zk2/zookeeper-3.4.8/zookeeperData/log clientPort=2182 server.1=chen:2887:3887 server.2=chen:2888:3888 server.3=chen:2889:3889
对zk3 的zoo.cfg 配置修改,/root/software/zk/zk3/zookeeper-3.4.8/conf/zoo.cfg
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/root/software/zk/zk3/zookeeper-3.4.8/zookeeperData/data dataLogDir=/root/software/zk/zk3/zookeeper-3.4.8/zookeeperData/log clientPort=2183 server.1=chen:2887:3887 server.2=chen:2888:3888 server.3=chen:2889:3889
为zk 配置myid 文件
对zk1 配置myid 文件
echo 1 > /root/software/zk/zk1/zookeeper-3.4.8/zookeeperData/data/myid
对zk2配置myid 文件
echo 2 > /root/software/zk/zk2/zookeeper-3.4.8/zookeeperData/data/myid
对zk3配置myid 文件
echo 3 > /root/software/zk/zk3/zookeeper-3.4.8/zookeeperData/data/myid
启动各个zk 服务
bin/zkServer.sh start
查看各个节点的状态
bin/zkServer.sh status
主节点会显示
ZooKeeper JMX enabled by default Using config: /root/software/zk/zk2/zookeeper-3.4.8/bin/../conf/zoo.cfg Mode: leader
备节点会显示
ZooKeeper JMX enabled by default Using config: /root/software/zk/zk3/zookeeper-3.4.8/bin/../conf/zoo.cfg Mode: follower
zookeeper 集群搭建
参考博客:
http://blog.csdn.net/huwei2003/article/details/49101269
http://blog.csdn.net/gobitan/article/details/8659175