准备:
1. 准备工作:
1) JDK:zookeeper需要java运行环境,这个建议1.6以上,配置好 JAVA_HOME 和 PATH 变量,其他的就不多说了。
2) zookeeper安装包:http://zookeeper.apache.org/releases.html 下载稳定版本
2. 各种解压,不多说,建议对解压后的目录(带有版本号的),建立软连接 zk ,方便后面的配置和升级。
我解压后放在: ~/zk/zookeeper-3.3.3 下面 (add:最近用的是3.3.6版本)
3. 端口检查,通常使用的端口 2181,2888,3888 ,检查是否占用,占用则下面的配置中更改端口。
单机实例配置及启动:
- cp ~/zk/zookeeper-3.3.3/conf/zoo_sample.cfg ~/zk/zookeeper-3.3.3/conf/zoo.cfg 生成配置文件,配置文件名随便,这里是zoo.cfg
- vi ~/zk/zookeeper-3.3.3/conf/zoo.cfg
- tickTime=2000
initLimit=5
syncLimit=5
dataDir=/data/yufu/zk/datadir4zk # 目录需要手工建立,存放 zk 数据,主要是快照
clientPort=2181
dataLogDir=/data/yufu/zk/datalogdir4zk # 目录需要手工建立,存放 zk log文件(del:不需要配置这个)
- 启动zk单机实例:bin/zkServer.sh start zoo.cfg
模拟分布式多实例实例配置及启动:
拷贝配置文件,生成三个配置文件:zoo1.cfg: (另外两个 zoo2.cfg 和 zoo3.cfg)
tickTime=2000initLimit=5syncLimit=5dataDir=/data/yufu/zk/datadir4zk1 #另外两个分别配置 2 和 3 不同目录,同时建立该目录clientPort=2181 #另外两个分别配置 2 和 3 不同端口dataLogDir=/data/yufu/zk/datalogdir4zk1 #另外两个分别配置 2 和 3 不同目录,同时建立该目录server.1=10.16.19.95:2888:3888server.2=10.16.19.95:2889:3889server.3=10.16.19.95:2890:3890如上配置相同的本机IP,不同的端口号,这里配置了三个实例如何区分到底是第几个实例呢,就要有个id文件,名字必须是myid,目录是 $dataDir (add:)echo "1" > /data/yufu/zk/datalogdir4zk1/myidecho "2" > /data/yufu/zk/datalogdir4zk2/myid
echo "3" > /data/yufu/zk/datalogdir4zk3/myid
启动: bin/zkServer.sh start zoo1.cfg ; bin/zkServer.sh start zoo2.cfg ; bin/zkServer.sh start zoo3.cfg
真正分布式部署:
与模拟分布式差不多,不用三个目录,只需要一个目录,一个配置文件,三个不同IP,分发在不同的IP上,仍然是不同的myid,启动实例。
tickTime=2000
initLimit=5
syncLimit=5
dataDir=/data/yufu/zk/datadir4zk
clientPort=2181
dataLogDir=/data/yufu/zk/datalogdir4zkserver.1=10.16.19.95:2888:3888
server.2=10.16.19.96:2888:3888
server.3=10.16.19.102:2888:3888