安装
首当其冲肯定是要安装了,zookeeper-3.4.9.tar.gz,下载后,解压到任意目录。
tar -zxvf zookeeper-3.4.9
到这儿已经安装成功了。。接下来把这个目录复制出三份,为什么是三份呢?因为Zookeeper需要一个Leader,两个Follower(最起码也得俩吧,要么怎么分布式呢)。然后呢,编辑一下每个目录的配置文件。
//如果没有配置文件
//cp conf/zoo_sample.cfg conf/zoo.cfg
//zookeeper server 1
tickTime=2000
initLimit=10
syncLimit=5
//换成你自己的目录,每个节点要设置不同的。
dataDir=/home/allen/tools/zookeeper_1/data
clientPort=2182
/*
server.{A}={B}:{C}:{D}
A:是一个数字,这个数字对应节点的Index,这个下一步再讲。
B:节点的HOST,因为都在一个机器上,所以都是127
C&D:Leads通信端口,可以先配置上,有兴趣的同学可以看看官方文档
*/
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
//接下来把其他两个Server按照相同的进行配置,不同的只有dataDir & clientPort
接下来要运行了吗?并不是,还有个index 没修改不是吗!!
找到你dataDir的目录,我设置的是“/home/allen/tools/zookeeper_1/data”,执行语句
echo "1" >> /home/allen/tools/zookeeper_1/data/myid
//这个1,就是server后面的数字,接下来,为每个节点进行配置。
echo "2" >> /home/allen/tools/zookeeper_2/data/myid
echo "3" >> /home/allen/tools/zookeeper_3/data/myid
..
..
到此配置工作已经完成,跑一下吧。。
//到每个节点目录下,分别执行
./bin/zkServer.sh start
运行
费半天劲,浪我们看看有什么结果
./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/allen/tools/zookeeper_1/bin/../conf/zoo.cfg
Mode: follower
//如果是Leader主机,看到的结果如下
ZooKeeper JMX enabled by default
Using config: /home/allen/tools/zookeeper_3/bin/../conf/zoo.cfg
Mode: leader
//连接上机器看看都有什么
./bin/zkCli.sh -server 127.0.0.1:2180
[zk: 127.0.0.1:2180(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
connect host:port
get path [watch]
ls path [watch]
set path data [version]
rmr path
delquota [-n|-b] path
quit
printwatches on|off
create [-s] [-e] path data acl
stat path [watch]
close
ls2 path [watch]
history
listquota path
setAcl path acl
getAcl path
sync path
redo cmdno
addauth scheme auth
delete path [version]
setquota -n|-b val path
[zk: 127.0.0.1:2182(CONNECTED) 8] create /my_test hello_world
Created /my_test
[zk: 127.0.0.1:2182(CONNECTED) 9] ls /
[zookeeper, my_test]
[zk: 127.0.0.1:2182(CONNECTED) 10] get /my_test
hello_world
cZxid = 0x100000005
ctime = Thu Mar 02 12:12:03 CST 2017
mZxid = 0x100000005
mtime = Thu Mar 02 12:12:03 CST 2017
pZxid = 0x100000005
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 11
numChildren = 0
[zk: 127.0.0.1:2182(CONNECTED) 11]
为什么没有更多的例子?说白了我也刚研究,所以不知道更多的命令,哈哈哈!!
以上就是我的安装过程,其中遇到困阻无数,希望能解决你的问题。