一、概述

ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。

Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。

ZooKeeper 是 Apache 软件基金会的一个开源软件项目,是 Google的 Chubby 一个开源的实现,是Hadoop和Hbase的重要组件。

1. Zookeeper 功能

Zookeeper 是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

ZooKeeper包含一个简单的原语集,提供 Java 和 C 的接口。

Zookeeper 一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。

2. Zookeeper 数据结构

Zookkeeper 提供的名称空间非常类似于标准文件系统,key-value 的形式存储。名称 key 由斜线 / 分割的一系列路径元素,zookeeper 名称空间中的每个节点都是由一个路径标识。

二、安装

Zookeeper 下载地址为: https://zookeeper.apache.org/releases.html

1. 版本选择

本教程使用的release 版本为3.5.9 地址 https://dlcdn.apache.org/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9.tar.gz

2.安装
tar -zxvf  apache-zookeeper-3.5.9.tar.gz

进入服务目录

cd apache-zookeeper-3.5.9/conf/

进入解压好的目录,首先复制配置文件,默认是zoo.xml,所以把他提供的复制一份

cp zoo_sample.cfg zoo.cfg

进入bin目录运行启动

cd ../bin/
sh zkServer.sh start

查看运行状态

sh  zkServer.sh  status

三、客户端使用

zookeeper 的客户端命令用于在 zookeeper 服务上执行相应操作。

sh zkCli.sh

下面通过几个简单的命令加深一下理解

  1. ls 命令用于查看某个路径下目录列表。
ls /zookeeper
  1. stat 命令用于查看节点状态信息。
stat /zookeeper/config
  1. create 命令用于创建节点并赋值。
create -s -e /nxcode 0

-s 和 -e 都是可选的,-s 代表顺序节点, -e 代表临时节点

四、获取zookeeper服务状态的四字命令

zookeeper 支持一些特定的四字命令进行交互,用于获取 zookeeper 服务的当前状态及相关信息,用户可以通过客户端的 telenet 或者 nc(netcat) 向 zookeeper 提交相应的命令

  1. 安装NC命令
yum install -y nc
  1. 开启四字命令
    在zoo.cfg文件中增加
    4lw.commands.whitelist=*
vim /usr/local/apache-zookeeper-3.6.3-bin/conf/zoo.cfg
4lw.commands.whitelist=*   # 增加此配置

重启zookeeper服务

../bin/zkServer.sh  restart
  1. stat 命令使用
    stat 命令用于查看 zk 的状态信息
echo stat | nc 127.0.0.1 2181
  1. ruok 命令
    ruok 命令用于查看当前 zkserver 是否启动,若返回 imok 表示正常
echo ruok | nc 127.0.0.1 2181
  1. dump 命令
    dump 命令用于列出未经处理的会话和临时节点。
echo dump | nc 127.0.0.1 2181
  1. conf命令
    conf 命令用于查看服务器配置
echo conf | nc 127.0.0.1 2181
  1. cons命令
    cons 命令用于展示连接到服务器的客户端信息
echo cons | nc 127.0.0.1 2181
  1. envi 命令
    envi 命令用于查看环境变量
echo envi | nc 127.0.0.1 2181