ZooKeeper 实践一:Standalones模式安装
ZooKeeper介绍
在单机中,系统协作大都是进程级的操作。分布式系统中,服务协作都是跨服务器才能完成的。在ZooKeeper之前,我们对于协作服务大都使用消息中间件,随着分布式系统的普及,用消息中间件完成协作,会有大量的程序开发。
Apache ZooKeeper 是由Apache Hadoop的子项目发展而来,于2010年11月正式成为了Apache的顶级项目。ZooKeeper是一个为分布式应用所设计的分布的、开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper本身可以以Standalone模式安装运行,不过它的长处在于通过分布式ZooKeeper集群(一个Leader,多个Follower),基于一定的策略来保证ZooKeeper集群的稳定性和可用性,从而实现分布式应用的可靠性。
系统环境(本次环境)
准备一台Linux服务器,系统要求如下:
Linux: CentOS 6.5 64bit Server
Java: 1.7.0_60 64-Bit Server VM
ZooKeeper 使用Java语言编写,运行环境需要Java环境的支持,建议使用JDK1.6以上版本。Java环境请自行配置。
下载ZooKeeper
本次使用的版本:zookeeper-3.4.5.tar.gz
将安装文件解压至某一目录:/usr/zookeeper-3.4.5
#tar zxvf zookeeper-3.4.5.tar.gz
配置ZooKeeper
1)创建数据目录
#mkdir /var/zookeeperdata
2)修改配置文件
因为ZooKeeper启动时默认加载名为zoo.cfg配置文件,所以需要将提供了zoo_sample.cfg复制一份并命名为zoo.cfg。当然,启动时也可使用指定配置文件
#cd /usr/zookeeper-3.4.5/conf
#cp zoo_sample.cfg zoo.cfg
#vi zoo.cfg
tickTime=2000
initLinmit=10
syncLimit=5
dataDir=/var/zookeeperdata
clientPort=2181
此处修改dataDir参数值为上一步创建的ZooKeeper数据目录路径
3)设置ZooKeeper环境变量(可选操作,方便操作,推荐配置)
#vi /etc/profile
export ZOOKEEPER_HOME=/usr/zookeeper-3.4.5
export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf
启动ZooKeeper
1)认识zkServer.sh脚本
#zkServer.sh
JMX enabled by default
Using config: /usr/zookeeper-3.4.5/bin/../conf/zoo.cfg
Usage: /usr/zookeeper-3.4.5/bin/zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}
2)运行脚本,启动ZooKeeper
#zkServer.sh start
JMX enabled by default
Using config: /usr/zookeeper-3.4.5/bin/../conf/zoo.cfg
Stooping zookeeper … STARTED
也可使用指定配置文件,如:
#zkServer.sh start zoo.cfg
#zkServer.sh start z1.cfg
查看运行状态
#zkServer.sh status
JMX enabled by default
Using config: /usr/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: standalone
数据目录文件结构
/var/zookeeperdata
├── version-2
│ └── snapshot.0
└── zookeeper_server.pid
停止ZooKeeper
#zkServer.sh stop
JMX enabled by default
Using config: /usr/zookeeper-3.4.5/bin/../conf/zoo.cfg
Stooping zookeeper … STOPPED