官网操作手册:http://zookeeper.apache.org/doc/r3.4.6/zookeeperStarted.html
单机单实例安装部署:
1)wgethttp://apache.fayea.com/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
2)tar -xzvf zookeeper-3.4.9.tar.gz
3) cd /home/aegis/tools/zookeeper-3.4.9/conf ; cp zoo_sample.cfg zoo.cfg
4) vim zoo.cfg;
5) 修改目录地址并新建该目录 dataDir=/home/aegis/tools/data/zookeeper
6) 启动zookeeper服务:
在目录 /home/aegis/tools/zookeeper-3.4.9下: 输入 bin/zkServer.sh start
7)验证安装是否成功:
输入bin/zkCli.sh -server 127.0.0.1:2181 后显示:
Connecting to 127.0.0.1:2181
JLine support is enabled
[zk: 127.0.0.1:2181(CONNECTING) 0]
或者输入命令:jps
其中QuorumPeerMain是zookeeper进程,启动正常。
单机多实例部署参考:https://my.oschina.net/xiaotian120/blog/193919
1. 准备工作:
1)需要linux环境,推荐用ubuntu的系统。学习的话使用oracle的virtual box安装虚拟机,网上找下安装文档就可以装好了,而生产环境一般都会装好的。ubuntu下载链接:
32位:http://mirrors.zju.edu.cn/ubuntu-releases//precise/ubuntu-12.04.3-server-i386.iso或64位:http://mirrors.hust.edu.cn/ubuntu-releases//precise/ubuntu-12.04.3-server-amd64.iso
2) JDK:zookeeper需要java运行环境,这个建议1.6以上,配置好 JAVA_HOME 、CLASSPATH、 PATH 变量。
jdk下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
环境变量配置,home目录下的.profile即可:
exportJAVA_HOME="/usr/lib/jvm/jdk1.7.0_40"exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexportZOOKEEPER_HOME="/data/apache/zookeeper"exportPATH="$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin"
3) zookeeper安装包:http://zookeeper.apache.org/releases.html下载稳定版本,现在的版本是3.4.5
2. 各种解压,不多说,建议对解压后的目录(带有版本号的),建立软连接 zk ,方便后面的配置和升级。
我解压后放在: /data/apache/zookeeper下面,并修改文件权限为运行用户权限:
sudochown-Rzqgame:zqgamezookeeper
zqgame:zqgame是运行zookeeper的用户和用户所在组,查看权限:
zqgame@develop-test-web:/data/apache$ lltotal16drwxr-xr-x4zqgame zqgame4096Jan1712:41./drwxr-xr-x11root root4096Dec1314:49../drwxr-xr-x11zqgame zqgame4096Nov2015:50hadoop-2.2.0/drwxr-xr-x12zqgame zqgame4096Jan1712:56zookeeper/zqgame@develop-test-web:/data/apache$
3. 端口检查,通常使用的端口 2181,2888,3888 ,检查是否占用,占用则下面的配置中更改端口。
netstat-ano | grep2181
4.单机多实例配置及启动:
#生成配置文件,配置文件名随便,这里是zoo.cfgcp/data/apache/zookeeper/conf/zoo_sample.cfg /data/apache/zookeeper/conf/zoo.cfgvi/data/apache/zookeeper/conf/zoo.cfg
配置文件内容:
tickTime=2000initLimit=5syncLimit=5dataDir=/data/apache/zookeeper/data # 目录需要手工建立,存放 zk 数据,主要是快照clientPort=2181# dataLogDir事务日志存放目录,最好配置,事务日志的写入速度严重影响zookeeper的性能dataLogDir=/data/apache/zookeeper/datalogserver.1=192.168.130.170:2889:3889server.2=192.168.130.170:2890:3890server.3=192.168.130.170:2891:3891
拷贝配置文件,生成三个配置文件:zoo-slave1.cfg: (另外两个 zoo-slave2.cfg 和 zoo-slave3.cfg)。
zoo-slave1.cfg需要为dataDir和dataLogDir设置目录,改动内容如下:
dataDir=/data/apache/zookeeper/data/slave1dataLogDir=/data/apache/zookeeper/datalog/slave1clientPort=2182
zoo-slave2.cfg:
dataDir=/data/apache/zookeeper/data/slave2dataLogDir=/data/apache/zookeeper/datalog/slave2clientPort=2183
zoo-slave3.cfg:
dataDir=/data/apache/zookeeper/data/slave3dataLogDir=/data/apache/zookeeper/datalog/slave3clientPort=2184
如上配置相同的本机IP,不同的端口号,这里配置了三个实例
如何区分到底是第几个实例呢,就要有个id文件,名字必须是myid
echo"1">/data/apache/zookeeper/data/slave1/myidecho"2">/data/apache/zookeeper/data/slave1/myidecho"3">/data/apache/zookeeper/data/slave1/myid
在三个窗口下迅速启动:
bin/zkServer.shstartzoo-slave1.cfgbin/zkServer.shstartzoo-slave2.cfgbin/zkServer.shstartzoo-slave3.cfg
查看zookeeper选出来的leader,通过下面的脚本,分别指定配置文件,就可以查看哪一个实例是leader:
bin/zkServer.sh status zoo-slave1.cfg
可以看下如下输出信息:
zqgame@develop-test-web:/data/apache/zookeeper$ bin/zkServer.sh status zoo-slave2.cfg JMX enabled by defaultUsingconfig: /data/apache/zookeeper/bin/../conf/zoo-slave2.cfgMode: leader