Zookeeper3.4安装

Zookeeper依赖JDK
必须先安装JDK

cd /usr/local/src
tar -zxvf zookeeper-3.4.10.tar.gz

mv zookeeper-3.4.10 /usr/local/zookeeper
cd /usr/local/zookeeper

在目录下新建数据目录和日志目录
mkdir data
mkdir logs

在conf目录下新建zoo.cfg文件,写入以下内容保存:
tickTime=2000
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/logs
clientPort=2181


进入bin目录,启动、停止、重启分和查看当前节点状态(包括集群中是何角色)分别执行:
cd /usr/local/zookeeper/bin
./zkServer.sh start
./zkServer.sh stop
./zkServer.sh restart
./zkServer.sh status
/usr/local/zookeeper/bin/zkServer.sh start

集群配置
1.在集群模式下,所有的zk进程可以使用相同的配置文件(是指各个zk进程部署在不同的机器上面),例如如下配置:
cd /usr/local/zookeeper/conf
vim zoo.cfg

tickTime =2000 dataDir = /usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/logs
clientPort =2181 initLimit =5 syncLimit =2server.1=192.168.3.4:2888:3888server.2=192.168.3.5:2888:3888server.3=192.168.3.6:2888:3888

集群配置文件详解
initLimit
ZooKeeper集群模式下包含多个zk进程,其中一个进程为leader,余下的进程为follower。
当follower最初与leader建立连接时,它们之间会传输相当多的数据,尤其是follower的数据落后leader很多。initLimit配置follower与leader之间建立连接后进行同步的最长时间。
syncLimit
配置follower和leader之间发送消息,请求和应答的最大时间长度。
tickTime
tickTime则是上述两个超时配置的基本单位,例如对于initLimit,其配置值为5,说明其超时时间为 2000ms * 5 = 10秒。
server.id=host:port1:port2
其中id为一个数字,表示zk进程的id,这个id也是dataDir目录下myid文件的内容。
host是该zk进程所在的IP地址,port1表示follower和leader交换消息所使用的端口,port2表示选举leader所使用的端口。
dataDir
其配置的含义跟单机模式下的含义类似,不同的是集群模式下还有一个myid文件。myid文件的内容只有一行,且内容只能为1 - 255之间的数字,这个数字亦即上面介绍server.id中的id,表示zk进程的id


2.data/myid文件修改
在192.168.3.4机器上修改
echo '1' > /usr/local/zookeeper/data/myid

在192.168.3.5机器上修改
echo '2' > /usr/local/zookeeper/data/myid

在192.168.3.6机器上修改
echo '3' > /usr/local/zookeeper/data/myid

最后使用命令把三个zookeeper都启动即可,启动顺序随意没要求。

在192.168.3.4机器上
/usr/local/zookeeper/bin/zkServer.sh start
在192.168.3.5机器上
/usr/local/zookeeper/bin/zkServer.sh start
在192.168.3.6机器上
/usr/local/zookeeper/bin/zkServer.sh start


产生上述两条Waring信息是因为zookeeper服务的每个实例都拥有全局的配置信息,他们在启动的时候需要随时随地的进行leader选举,此时server1就需要和其他两个zookeeper实例进行通信,但是,另外两个zookeeper实例还没有启动起来,因此将会产生上述所示的提示信息。当我们用同样的方式启动server2和server3后就不会再有这样的警告信息了。
当三台服务器均成功启动后切换至server1/bin/目录下执行以下命令:
bash zkServer.sh status
终端出现以下提示信息:


说明server1服务器此时处于follower模式,切换至server2/bin目录下执行相同的命令,返回如下结果:

说明server2被选举为leader。

server3也可以看到是 follower


可以手动停止一台的Zookeeper,看leader变化情况


目录功能

bin目录 :zk的可执行脚本目录,包括zk服务进程,zk客户端,等脚本。其中,.sh是Linux环境下的脚本,.cmd是Windows环境下的脚本。

conf目录 :配置文件目录。zoo_sample.cfg为样例配置文件,需要修改为自己的名称,一般为zoo.cfg。log4j.properties为日志配置文件。

lib 目录:zk依赖的包。

contrib目录 :一些用于操作zk的工具包。

recipes目录 :zk某些用法的代码示例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值