Zookeeper的安装和部署

Zookeeper的下载地址: http://zookeeper.apache.org/releases.html

安装

安装 Zookeeper 之前需要先安装 JDK,关于 JDK 的安装见 JDK安装

根据 Zookeeper官网 下载压缩文件【此处为3.4.8版本】,进行如下操作:

  1. 解压
   tar -zxvf zookeeper-3.4.8.tar.gz

  1. 目录重命名
   mv zookeeper-3.4.8 zookeeper

  1. 修改用户和用户组
   chown —R hadoop:hadoop zookeeper/

  1. 配置环境变量
   ## 编辑.bashrc文件,在文件末尾添加以下环境变量配置:
   # ZooKeeper Env
   export ZOOKEEPER_HOME=/opt/zookeeper
   export PATH=$PATH:$ZOOKEEPER_HOME/bin
   
   ## 使环境变量生效
   source .bashrc

配置

初次使用 ZooKeeper 时, 需要将 $ZOOKEEPER_HOME/conf 目录下的 zoo_sample.cfg 重命名为 zoo.cfgzoo.cfg 默认配置如下:

# The number of milliseconds of each 
ticktickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

部署模式

Zookeeper 的部署模式有 3 种:

- 单机模式

- 伪集群模式

- 集群模式

单机模式

zoo.cfg 配置

tickTime=2000    
dataDir=/Users/apple/zookeeper/data    
dataLogDir=/Users/apple/zookeeper/logs    
clientPort=2181

参数说明:

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

至此, zookeeper的单机模式已经配置好了。

启动server只需运行脚本:

bin/zkServer.sh start  

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

bin/zkCli.sh -server localhost:2181

伪集群模式

所谓伪集群, 是指在单台机器中启动多个zookeeper进程, 并组成一个集群. 以启动3个zookeeper进程为例。

将zookeeper的目录拷贝2份:

|--zookeeper0  
|--zookeeper1  
|--zookeeper2

更改 zookeeper0/conf/zoo.cfg 文件为:

tickTime=2000    
initLimit=5    
syncLimit=2    
dataDir=/Users/apple/zookeeper0/data    
dataLogDir=/Users/apple/zookeeper0/logs    
clientPort=2181 
server.0=127.0.0.1:8880:7770    
server.1=127.0.0.1:8881:7771    
server.2=127.0.0.1:8882:7772

新增几个参数,其含义如下:

  • initLimit: zookeeper 集群中的包含多台server,其中一台为 leader,集群中其余的 server 为 follower。initLimit 参数配置初始化连接时,follower 和 leader 之间的最长心跳时间。此时该参数设置为 5,说明时间限制为 5 倍 tickTime,即5*2000=10000ms=10s
  • syncLimit:该参数配置 leader 和 follower 之间发送消息,请求和应答的最大时间长度。此时该参数设置为 2,说明时间限制为 2 倍 tickTime,即 4000ms
  • server.X=A:B:C:其中 X 是一个数字,表示这是第几号 server。A 是该 server 所在的 IP 地址,B 配置该 server 和集群中的 leader 交换消息所使用的端口。C 配置选举 leader 时所使用的端口。由于配置的是伪集群模式,所以各个 server 的 B,C 参数必须不同

参照 zookeeper0/conf/zoo.cfg,配置 zookeeper1/conf/zoo.cfgzookeeper2/conf/zoo.cfg 文件。只需更改dataDir、dataLogDir、clientPort 参数即可。

在之前设置的 dataDir 中新建myid文件,写入一个数字,该数字表示这是第几号server。该数字必须和 zoo.cfg 文件中的 server.X 中的 X 一一对应。也就是 /Users/apple/zookeeper0/data/myid 文件中写入0,/Users/apple/zookeeper1/data/myid 文件中写入1,/Users/apple/zookeeper2/data/myid 文件中写入2。

分别进入/Users/apple/zookeeper0/bin/Users/apple/zookeeper1/bin/Users/apple/zookeeper2/bin三个目录,启动server。

任意选择一个server目录,启动客户端:

bin/zkCli.sh -server localhost:4180

集群模式

集群模式的配置和伪集群基本一致。

由于集群模式下,各 server 部署在不同的机器上,因此各 server 的 conf/zoo.cfg 文件可以完全一样。

tickTime=2000    
initLimit=5    
syncLimit=2    
dataDir=/home/zookeeper/data    
dataLogDir=/home/zookeeper/logs    
clientPort=2181  
server.48=192.168.186.48:2888:3888  
server.49=192.168.186.49:2888:3888    
server.50=192.168.186.50:2888:3888  

示例中部署了 3 台 zookeeper server,分别部署在192.168.186.48192.168.186.49192.168.186.50上。需要注意的是各 server 的 dataDir 目录下的 myid 文件中的数字必须不同,如下:

  • 192.168.186.48 server 的 myid 为 48
  • 192.168.186.49 server 的 myid 为 49
  • 192.168.186.50 server 的 myid 为 50

本文由博客一文多发平台 OpenWrite 发布!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值