安装单机 Zookeeper

1. 下载Zookeeper 安装包

http://zookeeper.apache.org 官网下载。

2. 上传安装包

将下载的 Zookeeper 安装包上传到 zk04 主机的/usr/tools 目录。
我一般安装包放在tools里,安装在apps里

3. 安装配置 zk

(1) 解压安装包

zookeeper重启命令_配置文件


解压后的目录结构

zookeeper重启命令_安装包_02


bin目录中,核心的两个命令:一个是客户端命令,一个是服务端命令

zookeeper重启命令_配置文件_03

(2) 创建软链接

目的是后面把路径注册到path路径下,让它和版本号解除绑定

zookeeper重启命令_zookeeper重启命令_04

(3) 复制配置文件

复制 Zookeeper 安装目录下的 conf 目录中的 zoo_sample.cfg 文件,并命名为 zoo.cfg。

zookeeper重启命令_配置文件_05

(4) 修改配置文件

zookeeper重启命令_安装包_06

  • tickTime:对于zookeeper计时单位是1tick,而1tick就是2000毫秒
  • initLimit:初始化同步阶段花费的tick时间数量,即初始化同步的超时时限
  • syncLimit:更新同步的超时时限
  • dataDir:快照存储的目录,除了快照还有其他内容,禁止使用/tmp,临时目录
  • 每隔一段时间会把树形结构的数据序列化然后存入磁盘
  • clientPort:客户端端口号,即当前服务端监控的端口号是2181,客户端想要连接我就使用2181端口。

(5) 新建数据存放目录

zookeeper重启命令_zookeeper_07

(6) 注册 bin 目录

zookeeper重启命令_配置文件_08


zookeeper重启命令_zookeeper重启命令_09

(7) 重新加载 profile 文件

zookeeper重启命令_zookeeper重启命令_10

4. 操作 zk

(1) 开启 zk

zookeeper重启命令_zookeeper_11

(2) 查看状态

zookeeper重启命令_分布式_12


standalone:代表单机版

(3) 重启 zk

zookeeper重启命令_安装包_13

(4) 停止 zk

zookeeper重启命令_安装包_14

搭建 Zookeeper 集群

下面要搭建一个由四台 zk 构成的 zk 集群,其中一台为 Leader,两台 Follower,一台Observer。

1. 克隆并配置第一台主机

(1) 克隆并配置主机

克隆前面单机 Zookeeper 主机后,要修改如下配置文件:

  • 修改主机名:/etc/hostname
  • 修改网络配置:/etc/sysconfig/network-scripts/ifcfg-ens33

(2) 创建 myid 文件

在/usr/data/zookeeper 目录中创建表示当前主机编号的 myid 文件,该编号为当前主机在集群中的唯一标识。

zookeeper重启命令_zookeeper_15

(3) 修改 zoo.cfg

在 zoo.cfg 文件中添加 zk 集群节点列表。

zookeeper重启命令_安装包_16


2888叫做连接端口号,集群正常运行状态下,他们之间通信就是通过2888端口通信的

3888是选举端口号,当集群Leader选举的时候,他们之间通信用的就是3888端口

2. 克隆并配置另两台主机

克隆并配置另外两台主机的方式是相同的,下面以 zkos2 为例。

(1) 克隆主机

克隆前面 zkos1 主机后,要修改如下配置文件:

  • 修改主机名:/etc/hostname
  • 修改网络配置:/etc/sysconfig/network-scripts/ifcfg-ens33

(2) 修改 myid

修改 myid 的值与 zoo.cfg 中指定的主机编号相同。

zookeeper重启命令_配置文件_17


zookeeper重启命令_配置文件_18

3. 克隆并配置第四台主机

第四台主机即为要作 Observer 的主机。

zookeeper重启命令_配置文件_19

4. 启动 zk 集群

使用 zkServer.sh start 命令,逐个启动每一个 Zookeeper 节点主机。

zookeeper重启命令_安装包_20


zookeeper重启命令_zookeeper_21


zookeeper重启命令_分布式_22


zookeeper重启命令_分布式_23


zookeeper重启命令_zookeeper_24

关闭机器2,机器3成为leader,查看机器3下的data/…/version-2/目录

zookeeper重启命令_zookeeper_25


acceptedEpoch:接受的epoch

currentEpoch:当前的epoch

snapshot.10000:每个一段时间zookeeper会将树形结构的数据序列化存一份

zookeeper重启命令_配置文件_26


看到机器3接受和当前的epoch都是2,因为刚才重新选举过一次

伪集群的搭建

这里要搭建的集群与前面的集群相同,都由四台服务器组成,其中第四台为 Observer。
伪集群的搭建与真实集群的搭建差不多。其主机步骤分为四大步。

1. 复制配置文件

这里需要四个配置文件,都存放在 zk 安装目录的 conf 目录中。所以它们的文件名肯定是不同的。

zookeeper重启命令_安装包_27

2. 修改配置文件内容

以下是第四台 Server 的配置文件

zookeeper重启命令_zookeeper_28


另外三个配置文件中指定的 dataDir 分别是/usr/data/zookeeper1、/usr/data/zookeeper2、/usr/data/zookeeper3。clientPort 分别是 2181、2182、2183。当然,另外三个配置文件中不要设置 peerType=observer。

3. 创建数据目录

在/usr/data 下创建如下四个目录。

zookeeper重启命令_安装包_29

4. 创建 myid 文件

分别在 zookeeper1、zookeeper2、zookeeper3、zookeeper4 四个目录中创建四个 myid 文件,内容分别为 1、2、3、4。

zookeeper重启命令_zookeeper重启命令_30

5. 集群启动

伪集群的启动需要指定每台 Server 启动所使用的配置文件。进入到 zk 的安装目录。

zookeeper重启命令_配置文件_31


查看各个 Server 的状态。

zookeeper重启命令_安装包_32