安装zookeeper(后面简称zk),必须先在linux中安装好jdk,可参考: linux环境下jdk安装步骤
下载zookeeper安装包:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/
或csdn下载:https://download.csdn.net/download/csdn_terence/11037454
1. linux环境中进入/usr/local/目录: cd /usr/local
2.将zk安装包移动此目录下,并解压: tar -zxvf zookeeper-3.4.14.tar.gz
1.进入conf目录:cd zookeeper-3.4.14/conf
2. 将zoo_sample.cfg这个文件复制为zoo.cfg (必须是这个文件名):cp zoo_sample.cfg zoo.cfg
3. 编辑zoo.cfg:vim zoo.cfg ,修改以下内容:
dataDir=/tmp/zookeeper/data
dataLogDir=/tmp/zookeeper/log
注意:如果想配置集群的话,请在clientPort下面添加服务器的ip。如:
server.1=192.168.174.130:2888:3888
server.2=192.168.174.152:2888:3888
如果电脑内存比较小,zookeeper还可以设置成伪集群。也就是全部服务器采用同一个ip,但是使用不同的端口。
5. 在tmp目录创建目录:mkdir /tmp/zookeeper
创建数据data目录:mkdir /tmp/zookeeper/data
创建日志目录: mkdir /tmp/zookeeper/log
6.如果是配置集群,还需要在前面配置过的dataDir路径下新增myid文件
[root@localhost conf]# cd /tmp/zookeeper/data
[root@localhost data]# touch myid
[root@localhost data]# vim myid
在data目录下创建文件,文件名为“myid”, 编辑该“myid”文件,并在对应的IP的机器上输入对应的编号。
如在192.168.180.132上,“myid”文件内容就是1。在192.168.180.132上,内容就是2。
配置环境变量的命令如下:
[root@localhost zookeeper-3.4.14]# export ZOOKEEPER_INSTALL=/usr/local/zookeeper-3.4.14/
[root@localhost zookeeper-3.4.14]# export PATH=$PATH:$ZOOKEEPER_INSTALL/bin
1.进入bin目录,并启动zookeep:
[root@localhost local]# cd /usr/local/zookeeper-3.4.14/bin
[root@localhost bin]# ./zkServer.sh start
如果不是在bin目录下执行,启动zookeeper时会报错: bash: ./zkServer.sh: No such file or directory
注意: ./zkServer.sh start前面的 . 不可忽略。
2.启动成功效果如下:
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.14/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
3.zookeeper的服务端启动后,还需要启动zookeeper的客户端:./zkCli.sh
如果是连接多个不同的主机节点,可以使用如下命令:./zkCli.sh -server 192.168.174.130:2888
启动成功效果如下:
Connecting to localhost:2181
..........
Welcome to ZooKeeper!
2018-10-25 21:04:54,407 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1029] - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2018-10-25 21:04:54,471 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@879] - Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
[zk: localhost:2181(CONNECTING) 0] 2018-10-25 21:04:54,501 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1303] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x10000712e6f0000, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null4.查看状态:[root@localhost bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: standalone
zookeeper的出错日志会记录在 zookeeper.out。
当前处于哪个目录,执行完zkServer.sh start命令, zookeeper.out就会写在哪个目录。
vim zookeeper.out 可以查看报错信息。然后再搜索解决。