CentOS 6 study notes (6)

CentOS6 environment to install ZooKeeper

Posted by Chen Xingxu on February 15, 2021

CentOS 6学习笔记(六)–CentOS6环境安装ZooKeeper

ZooKeeper 介绍

ZooKeeper 是一个分布式的、开源的分布式应用程序协调服务。它提供了一组简单的原语集,分布式应用程序可以在此基础上实现更高级别的同步服务、配置管理、集群管理和域名服务。它的设计易于编程,并使用了一种和文件系统非常类似的数据模型来实现编程。它在 Java 中运行,并且有 Java 和 C 两个版本。

ZooKeeper 设计目标

简洁,清晰,稳定

ZooKeeper 允许分布式进程通过共享的分层名称空间相互协调,该名称空间的组织方式类似于标准文件系统。名称空间由数据寄存器组成,用 ZooKeeper 的话说,这些寄存器称为 znodes,它们类似于文件和目录。与设计用于存储的典型文件系统不同,ZooKeeper 数据保存在内存中,这意味着 ZooKeeper 可以实现高吞吐量和低延迟数。

ZooKeeper 的实现非常重视高性能、高可用性和严格排序的访问。ZooKeeper 在性能方面的优异表现意味着它可以在大型分布式系统中使用。ZooKeeper 杜绝了单一故障点的问题,体现了其稳定性。严格的排序意味着复杂的同步原语可以在客户端中实现。

分布式部署

与它协调的分布式进程一样,ZooKeeper 本身也设计为可在一组称为集群的主机上进行分布式部署。

组成 ZooKeeper 集群的服务器之间必须可以相互通信。它们在内存中维护状态映像,以及持久存储中的事务日志和快照。只要大多数服务器可用,ZooKeeper 服务就是稳定的。

当客户端连接到单个 ZooKeeper 服务器,客户端维护一个 TCP 连接,通过它发送请求、获取响应、获取监视事件和发送心跳(心跳保活机制)。如果连接到服务器的 TCP 中断,客户端将连接到另一个服务器。

严格排序

ZooKeeper 用反映所有事务顺序的数字标记每个更新。后续操作可以使用该顺序来实现更高级别的抽象,例如同步原语。

高性能

ZooKeeper 在以读操作为主的工作负载中性能极高。ZooKeeper 应用程序运行在数千台机器上,当读操作比写操作更常见时,它的性能最佳,比率约为10 : 1。

ZooKeeper 安装

前期准备

把 zookeeper-3.4.6.tar.gz 上传到 /usr/local 目录下,解压缩

cd /usr/local
tar -zxvf zookeeper-3.4.6.tar.gz

在 zookeeper-3.4.6 目录下创建 data 目录

cd /usr/local/zookeeper-3.4.6
mkdir data

配置

把 zookeeper-3.4.6/conf 目录下的 zoo_sample.cfg 更名为 zoo.cfg

cd /usr/local/zookeeper-3.4.6/conf
mv zoo_sample.cfg zoo.cfg

编辑 zoo.cfg 文件

vi zoo.cfg

把 dataDir 更改到自己刚才新建的 data 目录下

/usr/local/zookeeper-3.4.6/data

ZooKeeper 的端口号为 2181

使用

开启 ZooKeeper

/usr/local/zookeeper-3.4.6/bin/zkServer.sh start

查看状态

/usr/local/zookeeper-3.4.6/bin/zkServer.sh status

关闭 ZooKeeper

/usr/local/zookeeper-3.4.6/bin/zkServer.sh stop

注意:若出现 ZooKeeper 无法启动的情况,把 /usr/local/zookeeper-3.4.6/data 中的 zookeeper_server.pid 删除再尝试

开机自启

vi /etc/rc.d/rc.local

添加

/usr/local/zookeeper-3.4.6/bin/zkServer.sh start