- 环境准备
安装jdk
下载链接 https://www.oracle.com/java/technologies/downloads/
# 查看是否安装成功 java -version 与 javac -version 要求版本一致
[root@master ~]# java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
[root@master ~]# javac -version
javac 1.8.0_212
[root@master ~]#
- 下载zookeeper
下载链接https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz
# 将zookeeper上传到/export/software目录下
# 解压
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /export/servers
# 在/export/servers目录下重命名
mv apache-zookeeper-3.7.1-bin.tar.gz zookeeper-3.7.1
# 在 zookeeper-3.7.1 目录下创建data目录额logs目录
mkdir logs data
- 修改配置文件
# 进入配置文件所在目录
cd /export/servers/zookeeper-3.7.1/conf
# conf 是存放配置文件的目录,其中 zoo_sample.cfg 是配置模板文件,将其重命名为 zoo.cfg
mv zoo_sample.cfg 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=/export/servers/zookeeper-3.7.1/data
dataLogDir=/export/servers/zookeeper-3.7.1/logs
# the port at which the clients will connect
clientPort=2181
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.id=主机名/IP:2888:3888
server.1=master:2888:3888
server.2=hadoop01:2888:3888
server.3=hadoop02:2888:3888
- 配置集群下的id
# 在/export/servers/zookeeper-3.7.1/data目录下创建myid文件,并将id存入,这里的id对应的zoo.cnf中的server.id
cd /export/servers/zookeeper-3.7.1/data
touch myid
# master节点对应的server.id为1
echo "1" > myid
# hadoop01节点对应的server.id为2
# hadoop02节点对应的server.id为3
- 将配置分发给其他节点
xsync /export/servers/zookeeper-3.7.1
- 修改其他节点下myid
# 修改hadoop01的 myid 文件,对应自己的服务器编号
[root@hadoop01 zookeeper-3.7.1]# cd data
[root@hadoop01 data]# ls
myid
[root@hadoop01 data]# echo "2" > myid
[root@hadoop01 data]# cat myid
2
# 修改hadoop02的 myid 文件,对应自己的服务器编号
[root@hadoop02 zookeeper-3.7.1]# cd data
[root@hadoop02 data]# ls
myid
[root@hadoop02 data]# echo "3" > myid
[root@hadoop02 data]# cat myid
3
- zookeeper基本命令
# 进入 /export/servers/zookeeper-3.7.1/bin 目录下
# 执行命令
[root@master bin]# ./zkServer.sh start 启动服务
ZooKeeper JMX enabled by default
Using config: /export/servers/zookeeper-3.7.1/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED.
[root@master bin]# ./zkServer.sh status 查看服务状态
ZooKeeper JMX enabled by default
Using config: /export/servers/zookeeper-3.7.1/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
[root@master bin]# ./zkServer.sh restart 重启服务
[root@master bin]# ./zkServer.sh stop 停止服务
发现Hadoop01为leader,master和hadoop02为follower