一、安装
1、下载zookeeper stable 版本
下载地址:http://zookeeper.apache.org/releases.html
使用wget 下载
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/zookeeper-3.4.12.tar.gz
2、解压
tar -xf zookeeper-3.4.12.tar.gz
mv zookeeper-3.4.12 /home/sharps/tools/
将解压后的zookeeper-3.4.12文件放在系统的/home/sharps/tools/zookeeper-3.4.12。
二、配置
1、将zookeeper-3.4.12/conf目录下的zoo_sample.cfg文件拷贝一份,命名为为“zoo.cfg”
2、编辑zoo.cfg文件
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/home/sharps/zookeeperdata/zk
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=zookeeper:2888:3888
3、设置环境变量
export ZOOKEEPER_INSTALL=/home/sharps/tools/zookeeper-3.4.12
export PATH=$PATH:$ZOOKEEPER_INSTALL/bin
修改/etc/profile添加
export ZOOKEEPER_INSTALL=/home/sharps/tools/zookeeper-3.4.12
export PATH=$PATH:$ZOOKEEPER_INSTALL/bin
三、运行
1、启动zookeeper
root@sharps-computer:/home/sharps/tools/zookeeper-3.4.12/bin# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/sharps/tools/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
2、测试zookeeper
root@sharps-computer:/home/sharps/tools/zookeeper-3.4.12/bin# ./zkCli.sh -server zookeeper:2181
Connecting to zookeeper:2181
2018-11-23 17:22:47,325 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.12-e5259e437540f349646870ea94dc2658c4e44b3b, built on 03/27/2018 03:55 GMT
2018-11-23 17:22:47,327 [myid:] - INFO [main:Environment@100] - Client environment:host.name=sharps-computer
2018-11-23 17:22:47,327 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.8.0_181
2018-11-23 17:22:47,328 [myid:] - INFO [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2018-11-23 17:22:47,328 [myid:] - INFO [main:Environment@100] - Client environment:java.home=/opt/java/jdk1.8.0_181/jre
2018-11-23 17:22:47,329 [myid:] - INFO [main:Environment@100] - Client environment:java.class.path=/home/sharps/tools/zookeeper-3.4.12/bin/../build/classes:/home/sharps/tools/zookeeper-3.4.12/bin/../build/lib/*.jar:/home/sharps/tools/zookeeper-3.4.12/bin/../lib/slf4j-log4j12-1.7.25.jar:/home/sharps/tools/zookeeper-3.4.12/bin/../lib/slf4j-api-1.7.25.jar:/home/sharps/tools/zookeeper-3.4.12/bin/../lib/netty-3.10.6.Final.jar:/home/sharps/tools/zookeeper-3.4.12/bin/../lib/log4j-1.2.17.jar:/home/sharps/tools/zookeeper-3.4.12/bin/../lib/jline-0.9.94.jar:/home/sharps/tools/zookeeper-3.4.12/bin/../lib/audience-annotations-0.5.0.jar:/home/sharps/tools/zookeeper-3.4.12/bin/../zookeeper-3.4.12.jar:/home/sharps/tools/zookeeper-3.4.12/bin/../src/java/lib/*.jar:/home/sharps/tools/zookeeper-3.4.12/bin/../conf:.:/opt/java/jdk1.8.0_181/lib:/opt/java/jdk1.8.0_181/jre/lib:/opt/apache-maven-3.5.4/lib
2018-11-23 17:22:47,329 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2018-11-23 17:22:47,329 [myid:] - INFO [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2018-11-23 17:22:47,329 [myid:] - INFO [main:Environment@100] - Client environment:java.compiler=<NA>
2018-11-23 17:22:47,329 [myid:] - INFO [main:Environment@100] - Client environment:os.name=Linux
2018-11-23 17:22:47,329 [myid:] - INFO [main:Environment@100] - Client environment:os.arch=amd64
2018-11-23 17:22:47,329 [myid:] - INFO [main:Environment@100] - Client environment:os.version=4.15.0-39-generic
2018-11-23 17:22:47,329 [myid:] - INFO [main:Environment@100] - Client environment:user.name=root
2018-11-23 17:22:47,329 [myid:] - INFO [main:Environment@100] - Client environment:user.home=/root
2018-11-23 17:22:47,329 [myid:] - INFO [main:Environment@100] - Client environment:user.dir=/home/sharps/tools/zookeeper-3.4.12/bin
2018-11-23 17:22:47,330 [myid:] - INFO [main:ZooKeeper@441] - Initiating client connection, connectString=zookeeper:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@22d8cfe0
Welcome to ZooKeeper!
2018-11-23 17:22:47,344 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1028] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2018-11-23 17:22:47,391 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@878] - Socket connection established to localhost/127.0.0.1:2181, initiating session
[zk: zookeeper:2181(CONNECTING) 0] 2018-11-23 17:22:47,409 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1302] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x10000bbae890000, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
如果是本地连接,那么不需要 -server zookeeper:2181,默认是本地
注意:如果出现拒绝连接,请检查如下:
- 防火墙是否关闭 systemctl stop firewalld
- 需要将ip映射到本地 /etc/hosts文件中,否则无法连接
四、Zookeeper分布式部署
1、手动建立且指定在zk数据目录
myid必须手动建立且指定在zk数据目录,也就是dataDir指定的路径
/home/sharps/zookeeperdata/zk1/myid
/home/sharps/zookeeperdata/zk2/myid
/home/sharps/zookeeperdata/zk3/myid
2、修改配置/conf/zoo1.cfg zoo2.cfg zoo3.cfg
zoo1.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/sharps/zookeeperdata/zk1
clientPort=2181
server.1=master:2888(通讯端口):3888(选举端口)
server.2=master:2889:3889
server.3=master:2890:3890
zoo2.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/sharps/zookeeperdata/zk2
clientPort=2182
server.1=master:2888:3888
server.2=master:2889:3889
server.3=master:2890:3890
zoo3.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/sharps/zookeeperdata/zk3
clientPort=2183
server.1=master:2888:3888
server.2=master:2889:3889
server.3=master:2890:3890
3、Zookeeper及其APi的使用
- 停止Zookeeper
sh zkServer.sh stop /home/sharps/tools/zookeeper-3.4.12/conf/zoo1.cfg
sh zkServer.sh stop /home/sharps/tools/zookeeper-3.4.12/conf/zoo2.cfg
sh zkServer.sh stop /home/sharps/tools/zookeeper-3.4.12/conf/zoo3.cfg - 启动Zookeeper
sh zkServer.sh start /home/sharps/tools/zookeeper-3.4.12/conf/zoo1.cfg
sh zkServer.sh start /home/sharps/tools/zookeeper-3.4.12/conf/zoo2.cfg
sh zkServer.sh start /home/sharps/tools/zookeeper-3.4.12/conf/zoo3.cfg - 查看zookeeper状态
sh zkServer.sh status /home/sharps/tools/zookeeper-3.4.12/conf/zoo1.cfg
sh zkServer.sh status /home/sharps/tools/zookeeper-3.4.12/conf/zoo2.cfg
sh zkServer.sh status /home/sharps/tools/zookeeper-3.4.12/conf/zoo3.cfg
参考:https://blog.youkuaiyun.com/changshaoshao/article/details/83271736