一、安装文件准备
1.1、官网地址: http://zookeeper.apache.org/releases.html
1.2、需要下载的文件: zookeeper-3.4.8.tar.gz
二、安装步骤梳理
2.1、分别安装三个zookeeper应用、来模拟机器效果
因为资源有限,所以我在同一个服务器上面创建3个目录 server1、server2、server3 来模拟3台服务器集群。
具体步骤如下:
cd server1 tar -zxvf zookeeper-3.4.8.tar.gz mkdir data mkdir dataLog //备注:data 为数据目录,dataLog 为日志目录。
2.2、对zookeeper进行配置、主要配置 zookpeeper-3.4.8/conf下面的zoo.cfg文件
#创建文件 zoo.cfg,内容如下: tickTime=2000 initLimit=5 syncLimit=2 dataDir=/opt/zookeeper/server1/data dataLogDir=/opt/zookeeper/server1/dataLog clientPort=2181 server.1=127.0.0.1:2888:3888 server.2=127.0.0.1:2889:3889 server.3=127.0.0.1:2890:3890
2.3、zookeeper的配置参数说明、这不是步骤、可以忽略、主要加深理解:
tickTime:zookeeper中使用的基本时间单位, 毫秒值。 initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个 tickTime 时间间隔数。这里设置为5表名最长容忍时间为 5 * 2000 = 10 秒。 syncLimit:这个配置标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2 * 2000 = 4 秒。 dataDir 和 dataLogDir 看配置就知道干吗的了,不用解释。 clientPort:监听client连接的端口号,这里说的client就是连接到Zookeeper的代码程序。 server.{myid}={ip}:{leader服务器交换信息的端口}:{当leader服务器挂了后, 选举leader的端口} maxClientCnxns:对于一个客户端的连接数限制,默认是60,这在大部分时候是足够了。但是在我们实际使用中发现,在测试环境经常超过这个数,经过调查发现有的团队将几十个应用全部部署到一台机器上,以方便测试,于是这个数字就超过了。
2.4、上面已经完成了zoo.cfg的修改、下面需要创建myid文件:
cd server1 echo 1 > myid
2.5、 然后拷贝server1为server2和server3,并修改其中的zoo.cfg配置,当然也要修改myid的内容为2和3。
下面给出3个server的zoo.cfg 内容: server1 tickTime=2000 initLimit=5 syncLimit=2 dataDir=/opt/zookeeper/server1/data dataLogDir=/opt/zookeeper/server1/dataLog clientPort=2181 server.1=127.0.0.1:2888:3888 server.2=127.0.0.1:2889:3889 server.3=127.0.0.1:2890:3890 server2 tickTime=2000 initLimit=5 syncLimit=2 dataDir=/opt/zookeeper/server2/data dataLogDir=/opt/zookeeper/server2/dataLog clientPort=2182 server.1=127.0.0.1:2888:3888 server.2=127.0.0.1:2889:3889 server.3=127.0.0.1:2890:3890 server3 tickTime=2000 initLimit=5 syncLimit=2 dataDir=/opt/zookeeper/server3/data dataLogDir=/opt/zookeeper/server3/dataLog clientPort=2183 server.1=127.0.0.1:2888:3888 server.2=127.0.0.1:2889:3889 server.3=127.0.0.1:2890:3890 备注:这里做下说明:因为我们是在同一个机器上模拟的集群,所以要注意server端口号和clientPort不要重复了,不然会出现端口冲突。所以,如果我们是3个不同的机器上做的3个server,那么我们的zoo.cfg配置都是一样的(注意server.{myid}=后面的IP地址使用具体的IP地址,如192.168.0.88)。还有就是,每一个server的myid内容都不能一样,这也可以理解为不同server的标识。
三、小结
启动 进入 zookeeper-3.4.8/bin 目录, 使用 ./zkServer.sh start 启动zk服务。(你也可以使用 ./zkServer.sh start myzoo.cfg 指定配置文件启动,这在自动化运维的时候很有用) 使用 tail -f zookeeper.out 查看日志。 要说的是:在启动第一个的时候,日志中会出现一堆错误,仔细一看就能明白,是因为另外2个server还没有启动它连接不上的错误。然后当我们启动第二个server的时候,日志中的错误将会减少。最后我们把所有server都启动起来后,日志中便没有错误了。 测试 随便进入一个zk目录,连接一个server测试。 cd zookeeper-3.4.8/bin zkCli.sh -server 127.0.0.1:2181 如果你要连接别的服务器,请指定具体的IP地址。
未经允许不得转载:大自然的搬运工 » CentOS下搭建zookeeper集群