什么是ZooKeeper?
ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。它也是 Hadoop,HBase 和其他分布式框架中非常重要的组件。
分布式应用程序可以基于ZooKeeper实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。
ZooKeeper 一个最常用的使用场景就是用于担任服务生产者和服务消费者的注册中心。
安装ZooKeeper
本文介绍了如何在Linux系统中安装ZooKeeper,按照惯例分为两种安装的方式,原生安装以及使用docker安装。
原生安装
ZooKeeper是基于Java语言开发的,所以运行ZooKeeper首先需要在Linux系统中安装JDK并且配置好环境变量(网上教程也有很多)。
安装配置完JDK之后可以使用java
、javac
命令检查,效果如下:
访问http://archive.apache.org/dist/zookeeper/
下载所需要版本的Zookeeper,本文所演示的版本为3.4.12。
下载tar.gz
格式的压缩包,之后上传到所需要安装的Linux系统中,我上传到了/usr/local
路径下。
执行解压命令
tar -zxvf zookeeper-3.4.12.tar.gz
之后进入到解压后的文件夹后查看目录结构
- bin:主要的一些执行命令脚本,
.cmd
为windows的脚本,双击就可以运行,.sh
为Linux系统下的脚本。 - conf:存放配置文件,其中包括核心配置文件以及日志配置文件等。默认有一个
zoo_sample.cfg
核心配置文件,重命名为zoo.cfg
之后,Zookeeper启动时便可以自动扫描。 - contrib:附加的一些功能,存放插件等文件。
- dist-maven:由Maven编译之后的一些文件目录等。
- doc:文档目录
- lib:Zookeeper所依赖的jar包。
- recipes:存放一些案例代码。
- src:Zookeeper的源代码。
将Zookeeper的核心配置zoo_sample.cfg
文件改名为zoo.cfg
之后查看可以发现,我们还需要创建一个目录才存放Zookeeper的一些数据文件。而Zookeeper的端口为2181。
mkdir -p /tmp/zookeeper
完成上面的操作之后就可以前往bin目录启动Zookeeper的服务。
./zkServer.sh start
出现上面的效果代表启动成功了,之后可以再次进入bin目录,使用Zookeeper的客户端脚本访问。
./zkCli.sh
Docker安装
使用Docker安装的话要方便很多,首先确保你的Linux系统安装了Docker,可以使用docker ps
名称检查,之后按照顺序执行下面的命令。
docker pull zookeeper:3.4.12 docker run -d -p 2181:2181 --name zk zookeeper:3.4.12
查看Docker容器的日志可以发现,Zookeeper已经成功的启动了。
进入到容器内部查看目录结构,如下图所示:
docker exec -it zk bash
发现Docker容器内部的目录结构和刚才使用原生方式安装的Zookeeper的一样的,之后可以同样进入到bin目录执行客户端的命令./zkCli.sh
。