zookeeper 搭建

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

原文地址:https://www.cnblogs.com/chenfool/p/5698042.html