zookeeper安装与配置

1、准备工作

1.1、配置好jdk

1.2、下载zookeeper安装包

下载稳定版本:http://apache.fayea.com/zookeeper/ 

                    这里写图片描述
                       这里写图片描述
下载完成后,传到/apps/svr/目录中
                    这里写图片描述

2、安装

单机模式只适用于试验,开发,测试环境,生产环境不适合使用单机模式。

2.1、单机安装

2.1.1、解压

在下面的文件夹里解压

 

命令行:cd  /apps/svr/
      tar -xvf zookeeper-3.4.10.tar.gz
2.1.2、修改配置

在/apps/svr下创建一个文件夹叫zookeeper,并在zookeeper文件夹下再创建两个文件夹data和dataLog

                    这里写图片描述

复制conf目录下的zoo_sample.cfg,并命名为zoo.cfg

命令行:cp zoo_sample.cfg zoo.cfg

这里写图片描述

2.1.3、修改zoo.cfg文件
命令行:vi zoo.cfg

                这里写图片描述

配置文件的说明:
(1)initLimit:这个配置项是用来配置Zookeeper接受客户端(这里所说的客户端不是用户连接Zookeeper服务器的客户端,而是Zookeeper服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒。
(2)syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒。
(3)server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。
(4)2888端口号是服务之间通信的端口,而3888是zookeeper与其他应用程序通信的端口,而zookeeper是在hosts中已映射了本机的IP。
在上面的dataDir目录下(即/apps/svr/zookeeper/data)创建一个myid文件。将server.1对应的1写入myid中

命令行:touch myid
        vi myid

这里写图片描述

2.1.4、启动

进入/apps/svr/zookeeper-3.4.10/bin目录

2.1.4.1、后台启动

命令行: ./zkServer.sh start 

这里写图片描述

查看日志

命令行: tail -f zookeeper.out

这里写图片描述

命令行: ps -ef|grep zookeep

这里写图片描述
如图所示,配置成功

2.1.4.2、前台启动

命令行:./zkServer.sh start-foreground 
2.1.5、使用客户端连接zk

如果是连接同一台主机上的zk进程,那么直接运行bin/目录下的zkCli.cmd(Windows环境下)或者zkCli.sh(Linux环境下),即可连接上zk。
这里写图片描述
这里写图片描述

2.2、集群安装

2.2.1 说明

单机模式的zk进程虽然便于开发与测试,但并不适合在生产环境使用。在生产环境下,我们需要使用集群模式来对zk进行部署。
【注意】 在集群模式下,建议至少部署3个zk进程,或者部署奇数个zk进程。如果只部署2个zk进程,当其中一个zk进程挂掉后,剩下的一个进程并不能构成一个法定的大多数。因此,部署2个进程甚至比单机模式更不可靠,因为2个进程其中一个不可用的可能性比一个进程不可用的可能性还大。

2.2.1、配置文件说明

在集群模式下,所有的zk进程可以使用相同的配置文件(是指各个zk进程部署在不同的机器上面),例如如下配置:
tickTime=2000
dataDir=/home/myname/zookeeper(需要修改)
clientPort=2181
initLimit=5
syncLimit=2
server.1=centos1:2888:3888
server.2=centos2:2888:3888
server.3=centos3: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。
【注意】 如果仅为了测试部署集群模式而在同一台机器上部署zk进程,server.id=host:port1:port2配置中的port参数必须不同。但是,为了减少机器宕机的风险,强烈建议在部署集群模式时,将zk进程部署不同的物理机器上面。

2.2.2、安装

2.2.2.1、解压和修改配置

首先配置好JDK,参考http://blog.csdn.net/yuhuan12321/article/details/77184887

  • 在/apps/svr/下创建server1文件夹,把下载zookeeper安装包导入解压;
  • 在/apps/svr/server1下创建一个文件夹叫zookeeper,并在zookeeper文件夹下再创建两个文件夹data和dataLog
  • 复制/apps/svr/server1/zookeeper-3.4.10/conf目录下的zoo_sample.cfg,并命名为zoo.cfg

2.2.2.2、修改zoo.cfg文件

这里写图片描述
在/apps/svr/server1/zookeeper/data创建一个myid文件。将server.1对应的1写入myid中。另外两个,同理,改成2、3。

2.2.2.3、启动

1、三台机器分别启动
在/apps/svr/server1(2、3)/zookeeper-3.4.10/bin目录下输入

 ./zkServer.sh start

2、三台机器都启动完后

 ./zkServer.sh status

查看启动是否成功,三台机器会选择一台做为leader,另两台为follower
客户端命令

./zkCli.sh -server centos1:2181 

(因为是集群,机器名随便选一台即可)

转载于:https://my.oschina.net/joe12321/blog/1518686

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值