ZooKeeper学习:CentOS7下ZooKeeper集群搭建

准备

1、虚拟机

本文采用的三台一模一样的模拟机系统都是CentOS7,jdk版本"1.8.0_261“
一共三台机器:

hadoop-slave1
hadoop-slave2
hadoop-slave3

2、安装包

本文准备的安装包是:zookeeper-3.4.12.tar.gz

安装

1、创建安装目录

在三台机器上分别创建以下三个目录:

/opt/zookeeper
/opt/zookeeper/zkdata
/opt/zookeeper/zkdatalog

将安装包放到/opt/zookeeper目录下:
图1
然后将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上的配置:
图2
hadoop-slave2上的配置:
图2

hadoop-slave3上的配置:
图3

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leo825...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值