ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。下面是我在虚拟机上以集群的形式安装zookeeper的记录,供大家参考。对于集群模式,至少使用3台服务器,最好是奇数台。
用到的软件:VMware Workstation(安装Centos)、Xftp(往虚拟机传输文件)、Xshell(连接虚拟机)
操作步骤如下
1、下载zookeeper压缩包并上传
这里我下载的版本是zookeeper-3.3.3.tar.gz,通过xftp上传到3台虚拟机上的/usr/share/zookeeper目录下。
zookeeper目录创建命令:
cd /usr/share mkdir zookeeper
2、解压并配置zookeeper
cd /usr/share/zookeeper tar -zxvf zookeeper-3.3..tar.gz rm -rf zookeeper-3.3..tar.gz
创建data目录和myid文件
cd /usr/share/zookeeper/zookeeper-3.3./ mkdir data touch myid vim myid->按I键->输入1或者2或者3(3台虚拟机分别对应1、、)->按Esc键->:wq保存退出 cd /usr/share/zookeeper/zookeeper-3.3./conf mv zoo_sample.cfg zoo.cfg
vim zoo.cfg->按I键->修改文件内容为如下->按Esc键->:wq保存退出
clientPort=
tickTime=
initLimit=
syncLimit=
dataDir=/usr/share/zookeeper/zookeeper-3.3./data
server.=192.168.147.129::
server.=192.168.147.130::
server.=192.168.147.131::
参数说明:
clientPort-监听客户端连接的端口;
tickTime-ZooKeeper使用的基本时间单位(以毫秒为单位)。 它用于做心跳,最小会话超时将是tickTime的两倍;
initLimit-初始同步阶段可以采用的滴答数;
syncLimit-服务器与leader服务器的请求响应过期时间;
dataDir-存储内存数据库快照的位置,除非另有说明,否则指向数据库更新的事务日志。
server.1后面的1代码myid配置的数字;
192.168.147.129代表虚拟机IP地址;
2888是zookeeper应用的端口,用于集群内的机器通讯;
3888是leader选举的端口。
3、启动zookeeper并查看状态
进入bin目录:
cd /usr/share/zookeeper/zookeeper-3.3./bin
三台虚拟机分别执行如下命令:
./zkServer.sh start
等待一段时间后,用如下命令查看每台虚拟机的zookeeper状态:
echo stat|nc 127.0.0.1