文章目录
准备
1、虚拟机
本文采用的三台一模一样的模拟机系统都是CentOS7
一共三台机器:
hadoop-slave1
hadoop-slave2
hadoop-slave3
2、安装包
本文准备的安装包是:zookeeper-3.4.12.tar.gz
安装
1、创建安装目录
在三台机器上分别创建以下三个目录:
/opt/zookeeper
/opt/zookeeper/zkdata
/opt/zookeeper/zkdatalog
将安装包放到/opt/zookeeper目录下:
然后将zookeeper-3.4.12.tar.gz
解压,解压命令:
tar -zxvf zookeeper-3.4.12.tar.gz
2、文件配置
将配置文件拷贝一份成zoo.cfg并进行配置
[root@hadoop-slave1 conf]# cd /opt/zookeeper/zookeeper-3.4.12/conf
[root@hadoop-slave1 conf]# cp zoo_sample.cfg zoo.cfg
对zoo.cfg进行配置
[root@hadoop-slave1 conf]# cat zoo.cfg
# 这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
tickTime=2000
# 这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒
initLimit=10
# 这个配置项标识 Leader 与Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是5*2000=10秒
syncLimit=5
# 快照和日志的存储路径
dataDir=/opt/zookeeper/zkdata
dataLogDir=/opt/zookeeper/zkdatalog
# 这个端口就是客户端连接Zookeeper服务端的端口,Zookeeper会监听这个端口,接受客户端的访问请求。默认是2181
clientPort=12181
# zk集群节点配置
server.1=0.0.0.0:12888:13888
server.2=hadoop-slave2:12888:13888
server.3=hadoop-slave3:12888:13888
#server.1 这个1是服务器的表示也可以是其他数字,表示是第几号服务器,用来表示服务器,这个标识要写到快照目录下的myid文件中
#192.168.223.130为集群里的IP地址,第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举端口,
#集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888
# 一个ip所对应的客户机,只能和zk服务器维持60个连接
maxClientCnxns=60
# 这个参数和下面的参数搭配使用,这个参数指定了需要保留的文件数目。默认是保留3个
autopurge.snapRetainCount=3
# 这个参数指定了清理频率,单位是小时,需要填写一个1或更大的整数,默认是0,表示不开启自己清理功能
autopurge.purgeInterval=1
这里需要注意,如果是在本机节点的话zk集群节点的ip需要配置成0.0.0.0,不然会报找不到域名的错误,
例如:我这个zookeeper是在hadoop-slave1上部署的,那么这个server.1节点ip就配置成0.0.0.0。
hadoop-slave1上的配置:
hadoop-slave2上的配置:
hadoop-slave3上的配置:
3、验证
首先进入目录:
[root@hadoop-slave1 bin]# cd /opt/zookeeper/zookeeper-3.4.12/bin
[root@hadoop-slave1 bin]# ll
总用量 80
-rwxr-xr-x. 1 leo leo 232 3月 27 2018 README.txt
-rwxr-xr-x. 1 leo leo 1937 3月 27 2018 zkCleanup.sh
-rwxr-xr-x. 1 leo leo 1056 3月 27 2018 zkCli.cmd
-rwxr-xr-x. 1 leo leo 1534 3月 27 2018 zkCli.sh
-rwxr-xr-x. 1 leo leo 1759 3月 27 2018 zkEnv.cmd
-rwxr-xr-x. 1 leo leo 2696 3月 27 2018 zkEnv.sh
-rwxr-xr-x. 1 leo leo 1089 3月 27 2018 zkServer.cmd
-rwxr-xr-x. 1 leo leo 6773 3月 27 2018 zkServer.sh
-rw-r--r--. 1 root root 44128 12月 18 17:49 zookeeper.out
然后查看命令使用方法
[root@hadoop-slave1 bin]# zkServer.sh --help
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zookeeper-3.4.12/bin/../conf/zoo.cfg
Usage: ./zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}
启动zookeeper
[root@hadoop-slave1 bin]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
如上可以通过jps查看是否启动成功。
查看zookeeper启动状态
将我们配置的三台集群全部启动,然后查询状态
[root@hadoop-slave1 bin]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zookeeper-3.4.12/bin/../conf/zoo.cfg
Mode: follower
从这里可以看出我们的hadoop-slave1是follower节点
停止zookeeper
[root@hadoop-slave1 bin]# zkServer.sh stop
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zookeeper-3.4.12/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
查看zookeeper启动过程
如果一直启动失败可以使用如下命令查看启动过程和日志:
[root@hadoop-slave1 bin]# zkServer.sh start-foreground
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zookeeper-3.4.12/bin/../conf/zoo.cfg
2020-12-19 12:18:28,361 [myid:] - INFO [main:QuorumPeerConfig@136] - Reading configuration from: /opt/zookeeper/zookeeper-3.4.12/bin/../conf/zoo.cfg
2020-12-19 12:18:28,387 [myid:] - INFO [main:QuorumPeer$QuorumServer@184] - Resolved hostname: hadoop-slave3 to address: hadoop-slave3/192.168.223.130
2020-12-19 12:18:28,388 [myid:] - INFO [main:QuorumPeer$QuorumServer@184] - Resolved hostname: hadoop-slave2 to address: hadoop-slave2/192.168.223.129