ZooKeeper是 Apache的一个顶级项目,为分布式应用提供高效、高可用的分布式协调服务,提供了诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知和分布式锁等分布式基础服务。
1.下载地址
http://zookeeper.apache.org/releases.html
Zookeeper的运行需要JDK环境支持,所以需要先按照jdk1.6版本以上。
Zookeeper的安装方式分为三种,单机安装,伪分布式安装,集群安装,下面我们看看这几张安装方式
2.伪分布式安装
这里使用的版本是zookeeper-3.4.6, Zookeeper下载解压后,得到如下图文件夹,其中比较重要的是bin文件夹和conf文件夹。Bin文件夹存在着zookeeper的服务端和客户端,conf存放着zookeeper的配置文件.
本次伪分布式模拟3个zookeeper节点,创建三个文件夹,分别是server1,server2,server3,把解压后的zookeeper-3.4.6文件夹分别拷贝到server1,server2,server3三个文件内,然后在每个文件夹下分别创建data和logs文件夹。
修改配置文件,zookeeper的配置文件在conf目录,找到zoo_sample.cfg重命名为zoo.cfg,然后修改配置文件信息,内容如下
server1,server2,server3中的zoo.cfg文件内容都一样,唯一不同的是clientPort端口,
server1中zoo.cfg的clientPort=2181
server2中zoo.cfg的clientPort=2182
server3中zoo.cfg的clientPort=2183
分别在server1,server2,server3中的data文件夹下创建myid文件,并写人内容
Server1中的myid文件内容为1
Server2中的myid文件内容为2
Server3中的myid文件内容为3
注:myid文件的创建方式,可以直接创建一个记事本文件,写入内容,然后把文件后缀名去掉。
注意 zoo.cfg
dataDir表示数据存储目录
dataLogDir表示日志存储目录
如下分别表示server2下的数据目录和日志目录
dataDir=/tmp/zookeeper/server2/data
dataLogDir=/tmp/zookeeper/server2/logs
同时,我们看到每个zoo.cfg文件有如下内容,
server.1=127.0.0.1:8881:7771
server.2=127.0.0.1:8882:7772
server.3=127.0.0.1:8883:7773
格式如下server.A=B:C:D
其中A表示第几台服务器,B表示服务器的IP, C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口
部署完成后,最后目录结构如下图
--server1
--data
--logs
-- zookeeper-3.4.6
--server2
--data
--logs
-- zookeeper-3.4.6
--server3
--data
--logs
-- zookeeper-3.4.6
3.启动服务
启动zookeeper集群服务,打开CMD命令行,分别进入server1,server2,server3下的zookeeper-3.4.6文件夹下的bin目录,输入zkServer.cmd命令,启动服务。因为是3个节点,所以要打开三个命令行工具。
测试集群服务是否安装成功,打开cmd命令行,进入到bin目录下
输入如下命令zkCli.cmd –server 127.0.0.1:2181,如果没有报异常,说明集群安装成功
集群式的安装部署和伪集群式的安装部署一样,不同的是集群式是部署在不同的机器上