Zookeeper集群

Zookeeper

单机版配置:

1、下载Zookeeper,并解压
2、配置Zookeeper
将zookeeper conf目录下的zoo_sample.cfg文件复制一份命名为zoo.cfg,填入以下内容

tickTime=2000    ##Zookeeper最小时间单元,单位毫秒(ms),默认值为3000
dataDir=/var/lib/zookeeper    ##Zookeeper服务器存储快照文件的目录,必须配置
dataLogDir=/var/lib/log     ##Zookeeper服务器存储事务日志的目录,默认为dataDir
clientPort=2181    ##服务器对外服务端口,一般设置为2181
initLimit=5    ##Leader服务器等待Follower启动并完成数据同步的时间,默认值10,表示tickTime的10倍
syncLimit=2    ##Leader服务器和Follower之间进行心跳检测的最大延时时间,默认值5,表示tickTime的5倍

3、启动zookeeper

./bin/zkServer.sh start

Windows上执行:

.\bin\zkServer.cmd

zk集群配置:

1、下载Zookeeper,并解压
2、配置Zookeeper
将zookeeper conf目录下的zoo_sample.cfg文件复制一份命名为zoo.cfg,填入一下内容

tickTime=2000    ##Zookeeper最小时间单元,单位毫秒(ms),默认值为3000
dataDir=/var/lib/zookeeper    ##Zookeeper服务器存储快照文件的目录,必须配置
dataLogDir=/var/lib/log     ##Zookeeper服务器存储事务日志的目录,默认为dataDir
clientPort=2181    ##服务器对外服务端口,一般设置为2181
initLimit=5    ##Leader服务器等待Follower启动并完成数据同步的时间,默认值10,表示tickTime的10倍
syncLimit=2    ##Leader服务器和Follower之间进行心跳检测的最大延时时间,默认值5,表示tickTime的5倍

server.1=IP1:2888:3888
server.2=IP2:2888:3888
server.3=IP3:2888:3888

相比于单机模式,集群模式多了 server.id=host:port1:port2 的配置。其中,id 被称为 Server ID,用来标识该机器在集群中的机器序号(在每台机器的 dataDir 目录下创建 myid 文件,文件内容即为该机器对应的 Server ID 数字)。host 为机器 IP,port1 用于指定 Follower 服务器与 Leader 服务器进行通信和数据同步的端口,port2 用于进行 Leader 选举过程中的投票通信。

3、创建myid
在 dataDir 目录下创建名为 myid 的文件,在文件第一行写上对应的 Server ID。

4、按照相同步骤,为其他机器配置 zoo.cfg 和 myid文件

5、启动zookeeper集群
在每个节点上执行,分别启动所有节点上的zk服务

./bin/zkServer.sh start

Windows上执行:

.\bin\zkServer.cmd

zk伪集群配置

zk伪集群的配置方式与zk集群版类似,只是将所有节点都放到了同一台服务器上,相应的,配置的端口就必须换成每个节点唯一,不能重复

具体配置步骤

配置文件

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=/tmp/zookeeper
dataDir=/opt/zookeeper-cluster/zoo-node1/data
dataLogDir=/opt/zookeeper-cluster/zoo-node1/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

server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890

1、下载Zookeeper,并解压
2、配置Zookeeper
将zookeeper conf目录下的zoo_sample.cfg文件复制一份命名为zoo.cfg,填入一下内容

tickTime=2000    ##Zookeeper最小时间单元,单位毫秒(ms),默认值为3000 
dataDir=/opt/zookeeper-cluster/zoo-node3/data #Zookeeper服务器存储快照文件的目录,必须配置
dataLogDir=/opt/zookeeper-cluster/zoo-node3/logs  ##Zookeeper服务器存储事务日志的目录,默认为dataDir
clientPort=2181    ##服务器对外服务端口,一般设置为2181
initLimit=5    ##Leader服务器等待Follower启动并完成数据同步的时间,默认值10,表示tickTime的10倍
syncLimit=2    ##Leader服务器和Follower之间进行心跳检测的最大延时时间,默认值5,表示tickTime的5倍

# 注意: 伪集群模式下用于节点间通信和投票选举的端口也不能重复
server.1=localhost:2888:3888 
server.2=localhost:2889:3889
server.3=localhost:2890:3890

在家目录下创建logs

1.指定日志文件路径为logs的步骤:zoo.cfg里面

dataLogDir=/opt/zookeeper-cluster/zoo-node3/logs  ##Zookeeper服务器存储事务日志的目录,默认为dataDir

2.修改zkEvn.sh

#    ZOO_LOG_DIR="$ZOOKEEPER_PREFIX/logs"
    ZOO_LOG_DIR="../logs"
#还有
#    ZOO_LOG4J_PROP="INFO,CONSOLE"
ZOO_LOG4J_PROP="INFO,ROLLINGFILE"

上面data里面是

在这里插入图片描述

各项配置的含义请参见集群模式说明,需要注意的是伪集群模式所有节点不光clientPort不能一样, 用于节点间通信和投票选举的端口也不能一样。否则会端口占用无法正常启动

3、创建myid
在 data 目录下创建名为 myid 的文件,在文件第一行写上对应的 Server ID。注意一定要对应.

echo '1'  >  /opt/zookeeper/zoo-node1/data/myid
echo '2'  >  /opt/zookeeper/zoo-node2/data/myid
echo '3'  >  /opt/zookeeper/zoo-node3/data/myid

4、将配置好的节点复制几份,修改clientPort和myid

5、启动zookeeper集群
在每个节点目录下执行,分别启动所有节点服务

./bin/zkServer.sh start

Windows上执行:

.\bin\zkServer.cmd

成功界面

在这里插入图片描述

3.5.0新增的Admin服务

zookeeper 3.5.0以后内置了一个web的管理界面。如果你启动伪集群时出现端口冲突,但是并没有发现有已存在的zookeeper进程,请检查下是否应为管理服务端口冲突导致

管理界面支持配置一下参数:

  • admin.enableServer: 是否开启管理界面,默认开启
  • admin.serverAddress: 内嵌的Jetty服务器绑定地址,默认是0.0.0.0
  • admin.serverPort: 内嵌的Jetty服务器绑定的端口,默认是8080
  • admin.idleTimeout:访问Admin服务空闲连接等待时间(毫秒),默认30000ms
  • admin.commandURL: 访问哪个地址可以列出支持的管理命令,默认是:/commands
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值