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.3.tar.gz rm -rf zookeeper-3.3.3.tar.gz
创建data目录和myid文件
cd /usr/share/zookeeper/zookeeper-3.3.3/ mkdir data touch myid vim myid->按I键->输入1或者2或者3(3台虚拟机分别对应1、2、3)->按Esc键->:wq保存退出 cd /usr/share/zookeeper/zookeeper-3.3.3/conf mv zoo_sample.cfg zoo.cfg
vim zoo.cfg->按I键->修改文件内容为如下->按Esc键->:wq保存退出
clientPort=2181 tickTime=2000 initLimit=10 syncLimit=5 dataDir=/usr/share/zookeeper/zookeeper-3.3.3/data server.1=192.168.147.129:2888:3888 server.2=192.168.147.130:2888:3888 server.3=192.168.147.131:2888:3888
参数说明:
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.3/bin
三台虚拟机分别执行如下命令:
./zkServer.sh start
等待一段时间后,用如下命令查看每台虚拟机的zookeeper状态:
echo stat|nc 127.0.0.1 2181