zookeeper概述,安装和配置

来源:互联网 发布:淘宝客用返利网推广 编辑:程序博客网 时间:2024/05/22 13:58

一、背景

Zookeeper是一个高性能,分布式的,开源分布式应用协调服务。它提供了简单原始的功能,分布式应用可以基于它实现更高级的服务,比如同步,配置管理,集群管理,名空间。

二、安装和配置

Zookeeper的安装和配置比较简单,既可以配置成单机模式,伪集群模式和集群模式,下面分别对这三种模式进行说明:
(1)、下载zookeeper
官方下载地址:
https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/
(2)、单机模式
单机模式较简单,是指只部署一个zk进程,客户端直接与该zk进程进行通信。
在开发测试环境下,通过来说没有较多的物理资源,因此我们常使用单机模式。当然在单台物理机上也可以部署集群模式,但这会增加单台物理机的资源消耗。故在开发环境中,我们一般使用单机模式。 但是要注意,生产环境下一般不可用单机模式,这是由于无论从系统可靠性还是读写性能,单机模式都不能满足生产的需求。
运行配置

  • 解压到某个目录下,如 /data/zookeeper/;
  • 拷贝解压后的conf目录下的zoo_sample.cfg文件,重命名为zoo.cfg;
  • 修改默认的配置,配置如下:
tickTime=2000dataDir=/data/zookeeper/tmp/datadataLogDir=/data/zookeeper/tmp/logclientPort=2181

参数说明:
tickTime: zookeeper中使用的基本时间单位, 毫秒值.
dataDir: 数据目录. 可以是任意目录.
dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置.
clientPort: 监听client连接的端口号.

至此,单机模式的zookeeper已经配置完毕,下面启动即可,启动server 只需运行脚本:

bin/zkServer.sh start  

Server启动之后, 就可以启动client连接server了, 执行脚本:

bin/zkCli.sh -server localhost:2181  

(3)、伪集群模式
所谓伪集群, 是指在单台机器中启动多个zookeeper进程, 并组成一个集群. 以启动3个zookeeper进程为例.
1、将zookeeper的目录拷贝2份,分别解压到三个目录下,如

/data/zookeeper/zServer1,/data/zookeeper/zServer2,/data/zookeeper/zServer3

2、创建每个目录下的conf/zoo.cfg配置文件,如/data/zookeeper/zServer1/conf/zoo.cfg 内容如下:

tickTime=2000initLimit=10syncLimit=5dataDir=/data/zookeeper/zServer1/tmp/datadataLogDir=/data/zookeeper/zServer1/tmp/logclientPort=2181server.1=127.0.0.1:2287:3387server.2=127.0.0.1:2288:3388server.3=127.0.0.1:2289:3389

其他的/data/zookeeper/zServer2/confzoo.cfg /data/zookeeper/zServer3/confzoo.cfg,与zServer1的相同

注意:
因为是在一台机器上模拟集群,所以端口不能重复,这里用2181~2183,2287~2289,以及3387~3389相互错开。另外每个zk的instance,都需要设置独立的数据存储目录、日志存储目录,所以dataDir、dataLogDir这二个节点对应的目录,需要手动先创建好。
3、另外还有一个关键的设置,在每个zk server配置文件的dataDir所对应的目录下,必须创建一个名为myid的文件,其中的内容必须与zoo.cfg中server.x 中的x相同,即:

  • /data/zookeeper/zServer1/data/myid 中的内容为1,对应server.1中的1
  • /data/zookeeper/zServer2/data/myid 中的内容为2,对应server.2中的2
  • /data/zookeeper/zServer3/data/myid 中的内容为3,对应server.3中的3

生产环境中,分布式集群部署的步骤与上面基本相同,只不过因为各zk server分布在不同的机器,上述配置文件中的localhost换成各服务器的真实Ip即可。
分布在不同的机器后,不存在端口冲突问题,可以让每个服务器的zk均采用相同的端口,这样管理起来比较方便。
4、启动验证
进入每个zServer的bin/目录下执行 zServer.sh start进行启动,若已启动,请杀掉进程后启动。
启动成功后,执行jps查看进程,或用zServer.sh status查看状态

(4)、集群模式
集群模式与伪集群模式的配置基本相同,由于集群模式是分布在不同的机器上,因此各server的conf/zoo.cfg文件可以完全一样.
下面是一个配置实例:

tickTime=2000    initLimit=5    syncLimit=2    dataDir=/home/zookeeper/data    dataLogDir=/home/zookeeper/logs    clientPort=4180  server.43=10.1.39.43:2888:3888  server.47=10.1.39.47:2888:3888    server.48=10.1.39.48:2888:3888

示例中部署了3台zookeeper server, 分别部署在10.1.39.43, 10.1.39.47, 10.1.39.48上. 需要注意的是, 各server的dataDir目录下的myid文件中的数字必须不同.
10.1.39.43 server的myid为43, 10.1.39.47 server的myid为47, 10.1.39.48 server的myid为48.

0 0
原创粉丝点击