一、概述
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
下面通过几个简单的命令加深一下理解
- ls 命令用于查看某个路径下目录列表。
ls /zookeeper
- stat 命令用于查看节点状态信息。
stat /zookeeper/config
- create 命令用于创建节点并赋值。
create -s -e /nxcode 0
-s 和 -e 都是可选的,-s 代表顺序节点, -e 代表临时节点
四、获取zookeeper服务状态的四字命令
zookeeper 支持一些特定的四字命令进行交互,用于获取 zookeeper 服务的当前状态及相关信息,用户可以通过客户端的 telenet 或者 nc(netcat) 向 zookeeper 提交相应的命令
- 安装NC命令
yum install -y nc
- 开启四字命令
在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
- stat 命令使用
stat 命令用于查看 zk 的状态信息
echo stat | nc 127.0.0.1 2181
- ruok 命令
ruok 命令用于查看当前 zkserver 是否启动,若返回 imok 表示正常
echo ruok | nc 127.0.0.1 2181
- dump 命令
dump 命令用于列出未经处理的会话和临时节点。
echo dump | nc 127.0.0.1 2181
- conf命令
conf 命令用于查看服务器配置
echo conf | nc 127.0.0.1 2181
- cons命令
cons 命令用于展示连接到服务器的客户端信息
echo cons | nc 127.0.0.1 2181
- envi 命令
envi 命令用于查看环境变量
echo envi | nc 127.0.0.1 2181