ZK的介绍和安装

ZK的安装

1、zk的介绍

​ ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

​ ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

1.1 文件系统

Zookeeper维护一个类似文件系统的数据结构 , znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据

1.2 节点分类

有四种类型的znode:

  1. PERSISTENT-持久化目录节点

    客户端与zookeeper断开连接后,该节点依旧存在

  2. PERSISTENT_SEQUENTIAL-持久化顺序编号目录节点

    客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号

  3. EPHEMERAL-临时目录节点

    客户端与zookeeper断开连接后,该节点被删除

  4. EPHEMERAL_SEQUENTIAL-临时顺序编号目录节点

    客户端与zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号

1.3 监听通知机制

2、zk的下载

下载地址https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.4.14/

3、zk的安装(windows)

3.1 下载后的zookeeper-3.4.14.tar.gz解压

3.2 修改配置文件

1.进入到解压后的文件
    zookeeper-3.4.14\conf中
2.拷贝zoo_sample.cfg,并重命名为zoo.cfg
3.创建存储数据和日志的文件,在zookeeper-3.4.14中床架2个文件夹,分别为zkdata,zklogs。具体的路径可以根据自己情况决定
4.修改zoo.cfg文件为,下载为最简单配置
    tickTime=2000
    dataDir=C:/zkdata/zkdata
    dataLogDir=c:/zkdata/zklogs
    clientPort=2181
5.启动,注意windows下不要在启动命令后面添加start
    zkServer.cmd

3.3 参数介绍

  1. tickTime Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔 ,即每个tickTime发送一次心跳

  2. initLimit 配置 Zookeeper 接受客户端 初始化连接时最长能忍受多少个心跳时间间隔数 , initLimit为10,总的时长就是 10*2000=20 秒

  3. syncLimit 此配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 5*2000=10秒

  4. dataDir ookeeper 保存数据的目录 ,默认情况下日志也保存在这个文件夹下

  5. dataLogDir 日志文件存放目录

  6. clientPort 客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求

  7. service.A=B:C:D A:表示第几号服务器,值为1,2,

    ​ B:表示服务器IP

    ​ C:Leader和Follwer通讯的端口

    ​ D:备用选Leader端口

4、zk的安装linux

将下载后的zookeeper-3.4.14.tar.gz上传 到linxu服务器,此处放在/home/zk文件夹下

准备

提前创建好存储数据和日志的2个路径,示例:

cd /home/zk
mkdir zkdata
mkdir zklogs

安装zk

cd /home/zk
tar -zxvf zookeeper-3.4.14.tar.gz
cd zookeeper-3.4.14/conf
cp zoo_sample.cfg zoo.cif

vim zoo.cfg

修改内容如下

tickTime=2000
dataDir=/home/zk/zkdata
dataLogDir=/home/zk/zklogs
clientPort=2181

启动

cd /home/zk/zookeeper-3.4.14/bin
./zkServer.sh start

客户端连接

cd /home/zk/zookeeper-3.4.14/bin
./skCli.sh 

注意防火墙

5.集群(Linux下)

准备

此处以一台机器,伪集群伪例,真实生产环境为多台机器

准备1台linux虚拟机,将下载后的zookeeper-3.4.14.tar.gz上传 到linxu服务器,此处放在/home/zk文件夹下

cd /home/zk
mkdir zkdata-1 zkdata-2 zkdata-3
mkdir zklogs-1 zklogs-2 zklogs-3

安装zk

cd /home/zk
tar -zxvf zookeeper-3.4.14.tar.gz
cd zookeeper-3.4.14/conf
cp zoo_sample.cfg zoo-1.cif

vim zoo-1.cfg

修改内容如下

zoo-1.cfg

tickTime=2000
dataDir=/home/zk/zkdata-1
dataLogDir=/home/zk/zklogs-1
clientPort=2181
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

zoo-2.cfg

tickTime=2000
dataDir=/home/zk/zkdata-2
dataLogDir=/home/zk/zklogs-2
clientPort=2182
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

zoo-3.cfg

tickTime=2000
dataDir=/home/zk/zkdata-3
dataLogDir=/home/zk/zklogs-3
clientPort=2183
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

创建myid文件

cd /home/zk/zkdata-1
touch myid
vim myid 添加数字1
cp /home/zk/zkdata-1/myid /home/zk/zkdata-2/
cp /home/zk/zkdata-1/myid /home/zk/zkdata-3/
vim /home/zk/zkdata-2/myid 修改文件内容为2
vim /home/zk/zkdata-3/myid 修改文件内容为3

启动

cd /home/zk/zookeeper-3.4.14/bin
./zkServer.sh start ../conf/zoo-1.cfg 
./zkServer.sh start ../conf/zoo-2.cfg 
./zkServer.sh start ../conf/zoo-3.cfg 

检查启动后个节点在集群中的状态

6.常用命令

./zkServer.sh start ../conf/zoo-1.cfg  启动
./zkServer.sh stop ../conf/zoo-1.cfg  停止
./zkServer.sh status ../conf/zoo-1.cfg 检查状态

./zkCli.sh -server 127.0.0.1:2181 客户端连接服务器
posted @ 2020-07-06 22:26  wxzj  阅读(791)  评论(0编辑  收藏  举报