CentOS7单机和集群安装配置Zookeeper教程

亦凉 2024-04-18 08:59 135阅读 0赞

CentOS7单机和集群安装配置Zookeeper教程

  • 下载
  • 单机
  • 集群
      • 安装配置
      • 验证
  • 问题
      • 启动正常,但查看状态则是失败,客户端也连不上
  • 参数说明
  • 其他

下载

官网下载安装包“zookeeper-3.4.14.tar.gz:https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/

单机

1.利用xftp复制到虚拟机服务器/usr/local,用tar zxvf命令解压;
2.创建日志和数据文件夹

  1. mkdir -p /data/zookeeper/data
  2. mkdir p /data/zookeeper/log

3.zookeeper-x.x.x/conf目录下新建zoo.cfg,内容如下

  1. touch zoo.cfg
  2. vim zoo.cfg
  3. # The number of milliseconds of each tick
  4. tickTime=2000
  5. # The number of ticks that the initial
  6. # synchronization phase can take
  7. initLimit=10
  8. # The number of ticks that can pass between
  9. # sending a request and getting an acknowledgement
  10. syncLimit=5
  11. # the directory where the snapshot is stored.
  12. dataDir=/data/zookeeper/data
  13. dataLogDir=/data/zookeeper/log
  14. # the port at which the clients will connect
  15. clientPort=2181
  16. # the maximum number of client connections.
  17. # increase this if you need to handle more clients
  18. maxClientCnxns=10240
  19. # The number of snapshots to retain in dataDir
  20. autopurge.snapRetainCount=3
  21. # Purge task interval in hours
  22. # Set to "0" to disable auto purge feature
  23. autopurge.purgeInterval=1

4.启动

  1. cd /usr/local/zookeeper-x.x.x/bin
  2. ./zkServer.sh start
  3. 可用下面命令停止:
  4. sh zkServer.sh stop

集群

安装配置

三台机器






















IP 序号
192.168.230.128 1
192.168.230.129 2
192.168.230.130 3

1.在每台机器安装目录的conf/zoo.cfg后面加入

  1. server.1=192.168.230.128:2888:3888
  2. server.2=192.168.230.129:2888:3888
  3. server.3=192.168.230.130:2888:3888

2.创建节点识别文件。128服务器里面内容1,129内容2,130内容3

  1. cd /data/zookeeper/data
  2. touch myid

3.启动。分别到3台服务器安装目录的bin下执行./zkServer.sh start

验证

  1. # 128服务器
  2. ./bin/zkCli.sh -server 192.168.230.129
  3. # 129服务器
  4. ./bin/zkCli.sh -server 192.168.230.130

参照下面命令,128服务器新建节点,可以看到129的节点是可以同步的

  1. ls / ------- 查看znode
  2. create /zk_test my_data ------- 创建znode
  3. ls / ------- znode多了zk_test,
  4. get /zk_test ------- 看到值为my_data
  5. set /zk_test junk ------- 设置值为junk
  6. get /zk_test ------- 看到值为junk
  7. delete /zk_test ------- 删除znode

问题

启动正常,但查看状态则是失败,客户端也连不上

  1. [root@localhost bin]# sh zkServer.sh start
  2. ZooKeeper JMX enabled by default
  3. Using config: /usr/local/zookeeper-3.4.14/bin/../conf/zoo.cfg
  4. Starting zookeeper ... STARTED
  5. [root@localhost bin]# sh zkServer.sh status
  6. ZooKeeper JMX enabled by default
  7. Using config: /usr/local/zookeeper-3.4.14/bin/../conf/zoo.cfg
  8. Error contacting service. It is probably not running.
  9. [root@localhost bin]#
  • 原因一:集群误删data文件夹,里面的myid文件也被删掉了
  • 原因二:集群只启动一台机器,超过半数机器宕机,zookeeper会认为集群处于不可用状态。

解决

  • kill掉线程:./zkServer.sh stop,否则netstat -nap | grep 2181查看pid,并用kill -9 pid干掉线程;
  • 把version-2文件夹和zookeeper_server.pid文件删掉,log文件夹里面也干掉,把mypid恢复好;
  • 3台服务器都启动即可

参数说明

  • tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳,单位毫秒。
  • initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒
  • syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒
  • dataDir: Zookeeper 保存数据的目录
  • dataLogDir:Zookeeper保存日志的目录
  • clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
  • maxClientCnxns:最大客户端连接数
  • autopurge.snapRetainCount:数据目录里保存的快照数
  • autopurge.purgeInterval:删除快照的时间间隔,单位:小时

其他

  • 查看主从:./zkServer.sh status
  • 停止:./zkServer.sh stop

发表评论

表情:
评论列表 (有 0 条评论,135人围观)

还没有评论,来说两句吧...

相关阅读