下载安装包apache-zookeeper-3.7.0-bin.tar.gz
https://downloads.apache.org/zookeeper/current/
解压
tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz
创建数据与日志文件夹
cd apache-zookeeper-3.7.0-bin/
mkdir data
mkdir logs
修改配置
cd conf/
cp zoo_sample.cfg zoo.cfg
vi 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/apache-zookeeper-3.7.0-bin/data
dataLogDir=/home/apache-zookeeper-3.7.0-bin/logs
# 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
## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true
server.1=master:2888:3888
server.2=node1:2888:3888
server.3=node2:2888:3888
server.4=node3:2888:3888
server.5=node4:2888:3888
server.6=node5:2888:3888
admin.serverPort=8070
// 配置数据与日志路径
dataDir=/home/apache-zookeeper-3.7.0-bin/data
dataLogDir=/home/apache-zookeeper-3.7.0-bin/logs
//解决8080端口冲突
admin.serverPort=8070
// myid与实例
server.1=master:2888:3888
server.2=node1:2888:3888
server.3=node2:2888:3888
server.4=node3:2888:3888
server.5=node4:2888:3888
server.6=node5:2888:3888
sever.数字,这个数字是myid,如果不与myid对应启动会报错My id 6 not in the peer list
node5:2888:3888,是主机名与端口号
创建并修改myid文件
在我们建的data文件夹中创建myid文件
echo '1' >> myid
也可使用vi myid,填入数字1,wq保存
内容是数字,1-255范围的整数,与我们上面的配置对应上就行了,master的myid为1,node1的myid为2…以此类推,集群中节点的myid不能重复
启动(所有节点都执行)
需要配置Java环境变量,如果你不想改/etc/profile,那么修改zkEnv.sh在脚本前面的地方加上Java环境变量
#!/usr/bin/env bash
export JAVA_HOME=/home/jdk1.8.0_181/bin/
export PATH=$PATH:$JAVA_HOME
!所有节点的zkEnv.sh都需要配置Java环境
切换到bin目录
所有节点都需要启动,每个节点执行zkServer.sh start
zkServer.sh start
[root@master data]# /home/kqbigdata/apache-zookeeper-3.7.0-bin/bin/zkServer.sh start
/home/kqbigdata/jdk1.8.0_181/bin/java
ZooKeeper JMX enabled by default
Using config: /home/kqbigdata/apache-zookeeper-3.7.0-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
所有节点查看状态
zkServer.sh status
[root@master data]# /home/kqbigdata/apache-zookeeper-3.7.0-bin/bin/zkServer.sh status
/home/kqbigdata/jdk1.8.0_181/bin/java
ZooKeeper JMX enabled by default
Using config: /home/kqbigdata/apache-zookeeper-3.7.0-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
小练习
不需要积分即可下载文档,里面有zookeeper的小练习
https://download.csdn.net/download/qq_42158942/11846847
进入zookeeper
[root@master data]# /home/kqbigdata/apache-zookeeper-3.7.0-bin/bin/zkCli.sh -server master:2181
/home/kqbigdata/jdk1.8.0_181/bin/java
Connecting to master:2181
2021-07-21 15:36:24,458 [myid:] - INFO [main:Environment@98] - Client environment:zookeeper.version=3.7.0-e3704b390a6697bfdf4b0bef79e3da7a4f6bac4b, built on 2021-03-17 09:46 UTC
2021-07-21 15:36:24,460 [myid:] - INFO [main:Environment@98] - Client environment:host.name=master
2021-07-21 15:36:24,461 [myid:] - INFO [main:Environment@98] - Client environment:java.version=1.8.0_181
2021-07-21 15:36:24,462 [myid:] - INFO [main:Environment@98] - Client environment:java.vendor=Oracle Corporation
2021-07-21 15:36:24,463 [myid:] - INFO [main:Environment@98] - Client environment:java.home=/home/kqbigdata/jdk1.8.0_181/jre
......
2021-07-21 15:36:24,505 [myid:master:2181] - INFO [main-SendThread(master:2181):ClientCnxn$SendThread@1005] - Socket connection established, initiating session, client: /172.16.1.60:53218, server: master/172.16.1.60:2181
JLine support is enabled
2021-07-21 15:36:24,581 [myid:master:2181] - INFO [main-SendThread(master:2181):ClientCnxn$SendThread@1438] - Session establishment complete on server master/172.16.1.60:2181, session id = 0x1007106f0cd0000, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: master:2181(CONNECTED) 0]
。。。。。。