一,安装环境与软件版本
linuxcentOs6 64jdk jdk-8u191-linux-x64.tar.gzzookeeperzookeeper-3.4.10.tar.gz
注:zookeeper是JAVA开发的项目,依赖于JDK,所以要有JDK环境。
二,安装Zookeeper
1,JDK环境的检查
[root@localhost ~]# cd ../etc/
[root@localhost etc]# vi profile
## /etc/profile 文件中
export JAVA_HOME=/opt/jdk1.8.0_191
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
[root@localhost etc]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
[root@localhost etc]#
2,解压安装Zookeeper
##把安装包移动到相应目录下
[root@localhost opt]# ll
total 34232
drwxr-xr-x. 7 uucp 143 4096 Oct 6 2018 jdk1.8.0_191
drwxr-xr-x. 2 root root 4096 Mar 26 2015 rh
-rwxrw-rw-. 1 root root 35042811 Jun 21 2017 zookeeper-3.4.10.tar.gz
## 创建安装目录
[root@localhost opt]# mkdir module
[root@localhost opt]# ll
total 34236
drwxr-xr-x. 7 uucp 143 4096 Oct 6 2018 jdk1.8.0_191
drwxr-xr-x. 2 root root 4096 May 26 07:46 module
drwxr-xr-x. 2 root root 4096 Mar 26 2015 rh
-rwxrw-rw-. 1 root root 35042811 Jun 21 2017 zookeeper-3.4.10.tar.gz
## 解压zookeeper
tar zxvf zookeeper-3.4.10.tar.gz -C module
## zookeeper-3.4.10目录下,创建data目录和logs
[root@localhost zookeeper-3.4.10]# mkdir zkData
[root@localhost zookeeper-3.4.10]# mkdir logs
## conf目录下,目录下复制配置文件
[root@localhost conf]# cp zoo_sample.cfg zoo.cfg
## 修改配置文件 zoo.cfg
dataDir=/opt/module/zookeeper-3.4.10/zkData
dataLogDir=/opt/module/zookeeper-3.4.10/logs
3.操作Zookeeper
## 启动Zookeeper
[root@localhost zookeeper-3.4.10]# bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
## 查看进程是否启动(QuorumPeerMain是zk的启动类)
[root@localhost zookeeper-3.4.10]# jps
2952 QuorumPeerMain
2970 Jps
## 查看状态
[root@localhost zookeeper-3.4.10]# bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: standalone
## 启动客户端
[root@localhost zookeeper-3.4.10]# bin/zkCli.sh
Connecting to localhost:2181
2019-05-26 07:56:56,428 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f, built on 03/23/2017 10:13 GMT
2019-05-26 07:56:56,442 [myid:] - INFO [main:Environment@100] - Client environment:host.name=localhost
2019-05-26 07:56:56,442 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.8.0_191
2019-05-26 07:56:56,450 [myid:] - INFO [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2019-05-26 07:56:56,450 [myid:] - INFO [main:Environment@100] - Client environment:java.home=/opt/jdk1.8.0_191/jre
2019-05-26 07:56:56,451 [myid:] - INFO [main:Environment@100] - Client environment:java.class.path=/opt/module/zookeeper-3.4.10/bin/../build/classes:/opt/module/zookeeper-3.4.10/bin/../build/lib/*.jar:/opt/module/zookeeper-3.4.10/bin/../lib/slf4j-log4j12-1.6.1.jar:/opt/module/zookeeper-3.4.10/bin/../lib/slf4j-api-1.6.1.jar:/opt/module/zookeeper-3.4.10/bin/../lib/netty-3.10.5.Final.jar:/opt/module/zookeeper-3.4.10/bin/../lib/log4j-1.2.16.jar:/opt/module/zookeeper-3.4.10/bin/../lib/jline-0.9.94.jar:/opt/module/zookeeper-3.4.10/bin/../zookeeper-3.4.10.jar:/opt/module/zookeeper-3.4.10/bin/../src/java/lib/*.jar:/opt/module/zookeeper-3.4.10/bin/../conf:.:/opt/jdk1.8.0_191/lib:/opt/jdk1.8.0_191/jre/lib
2019-05-26 07:56:56,451 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2019-05-26 07:56:56,452 [myid:] - INFO [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2019-05-26 07:56:56,452 [myid:] - INFO [main:Environment@100] - Client environment:java.compiler=<NA>
2019-05-26 07:56:56,452 [myid:] - INFO [main:Environment@100] - Client environment:os.name=Linux
2019-05-26 07:56:56,453 [myid:] - INFO [main:Environment@100] - Client environment:os.arch=amd64
2019-05-26 07:56:56,453 [myid:] - INFO [main:Environment@100] - Client environment:os.version=2.6.32-642.el6.x86_64
2019-05-26 07:56:56,454 [myid:] - INFO [main:Environment@100] - Client environment:user.name=root
2019-05-26 07:56:56,454 [myid:] - INFO [main:Environment@100] - Client environment:user.home=/root
2019-05-26 07:56:56,455 [myid:] - INFO [main:Environment@100] - Client environment:user.dir=/opt/module/zookeeper-3.4.10
2019-05-26 07:56:56,461 [myid:] - INFO [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@b81eda8
Welcome to ZooKeeper!
2019-05-26 07:56:56,540 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1032] - 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
2019-05-26 07:56:56,917 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@876] - Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
2019-05-26 07:56:57,053 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1299] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x16af4a28e030000, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0]
## 停止Zookeeper
[root@localhost zookeeper-3.4.10]# bin/zkServer.sh stop
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
4.zoo.cfg 参数解读
1.tickTime =2000:通信心跳数,Zookeeper服务器与客户端心跳时间,单位毫秒
Zookeeper使用的基本时间,服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳,时间单位为毫秒。
它用于心跳机制,并且设置最小的session超时时间为两倍心跳时间。(session的最小超时时间是2*tickTime)
2.initLimit =10:LF初始通信时限
集群中的Follower跟随者服务器与Leader领导者服务器之间初始连接时能容忍的最多心跳数(tickTime的数量),用它来限定集群中的Zookeeper服务器连接到Leader的时限。
3.syncLimit =5:LF同步通信时限
集群中Leader与Follower之间的最大响应时间单位,假如响应超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer。
4.dataDir:数据文件目录+数据持久化路径
主要用于保存Zookeeper中的数据。
5.clientPort =2181:客户端连接端口
监听客户端连接的端口。
5.启动Zookeeper失败的原因
1,没有配置JDK环境变量;
2,JDK版本于Zookeeper版本不符合;
3,zoo.cfg文件dataDir路径配置有误。