zookeeper集群搭建,由于机器性能限制,集群只安装在一个linux系统中,搭建伪集群模式。
工具及安装包:VMware虚拟机、xshell5、Centos 6.9、jdk-7u80-linux-x64.tar.gz、zookeeper-3.4.12.tar.gz。
1、安装jdk。
下载jdk安装包(使用版本1.7),上传linux(如果是全新的系统,可能遇到“rz: command not found”错误,此时yum -y install lrzsz即可),解压。修改/etc/profile文件,增加:
如图,其中/usr/local/java为jdk安装目录。修改好并保存配置,重启linux系统或者使用source /etc/profile使得配置在当前窗口立即生效。
2、安装zookeeper
zookeeper集群,一般机器数为大于3的奇数个,这样,即使集群中的主机leader挂了,机器数量还是可以保证在半数之上,可以继续投票选举出新的主机leader提供服务。
本次使用3个zookeeper应用搭建伪集群,本次虚拟机ip:192.168.9.199,zookeeper服务监听端口分别为:2181,2182,2813,投票选举端口分别为2881/3881、2882/3882、2883/3883。
2.1、上传zookeeper安装包,本文上传目录/usr/cfangData/tarFile
2.2、解压并维护目录
tar -zxf zookeeper-3.4.12.tar.gz
将解压后的zookeeper目录重命名,便于查看管理:mv zookeeper-3.4.12 /usr/cfangData/zk01
2.3、提供缓存数据目录
在zk01目录下,创建data目录,用于缓存应用的运行数据
cd zk01
mkdir data
2.4、设置zookeeper配置文件
zookeeper解压后的子目录conf中,默认存在zoo_sample.cfg配置文件模板。
zookeeper应用中的读取的配置文件为zoo.cfg,拷贝默认配置文件:cp zoo_sample.cfg zoo.cfg
修改zoo.cfg配置文件(vi zoo.cfg):
(1)设置数据的缓存路径(根据自己的实际应用地址设置,默认为 /tmp/zookeeper):dataDir=/usr/cfangData/zk01/data
(2)设置服务、投票、选举端口
clientPort=2181 #zookeeper服务端口,zk01 - 2181、zk02 - 2182、zk03 - 2183
#以下为投票选举配置,三份zookeeper完全一致
server.1=192.168.9.199:2881:3881
server.2=192.168.9.199:2882:3882
server.3=192.168.9.199:2883:3883
2.6、设置唯一性标识
zookeeper集群中,每个节点需要一个唯一性的标识。要求自然数且在集群中唯一,保存路径为$dataDir/myid,其中dataDir为2.4中zoo.cfg设置的路径。
两种方式建立标识文件:
方式一:在zookeeper的子目录data中,创建文件muid:touch myid
为应用提供唯一性标识,本次配置中,三个zookeeper分别设置为1,2,3。
vi myid,
方式二:echo 唯一性标识 >> myid,例:echo 1 >> myid
2.5、复制zk01应用,用于模拟集群的3个节点
cp -r zk01 zk02
cp -r zk01 zk03
2.6、修改zk02、zk02配置信息
(1)修改zk02、03的myid文件,分别设置为2,3
(2)修改zk02、03的zoo.cfg文件,分别clientPort=2182、clientPort=2183
2.7、启动zookeeper
zookeeper子目录bin中,zkServer.sh为启动文件,启动命令:zk01/bin/zkServer.sh start
zk02/bin/zkServer.sh start
zk03/bin/zkServer.sh start
zookeeper集群,由于需要选举出主服务leader节点,至少启动2个zk服务。启动完成,可以使用zk01/bin/zkServer.sh status命令查看节点状态
Mode: leader - 主机、Mode: follower - 备份机
如图:
其中jps查看java进程,三个QuorumPeerMain即为zookeeper的进程信息。
图中zk02为leader节点,zk01、03为follower节点。
2.8、关闭zookeeper服务
zk01/bin/zkServer.sh stop