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