本人现在对zookeeper的环境搭建做一个总结,一般zookeeper的安装部署可以有三种模式,单机模式、伪分布式和分布式,这三种模式在什么时候应用具体看大家的使用场景,如果你只有一台机器且只是想自己开发测试时用,你可以安装个单机模式,简单又实用。如果想装逼但又没有足够的机器,那你可以选择伪分布式的方式搭建,这可以满足你内心高大上的分布式需求又可以满足没有机器的屌丝现状。如果手头有三台以上的服务器,那就可以大展高富帅的风采,直接上真的分布式,真的分布式部署一般是在系统的正式环境中应用。下面我来对这三种搭建模式作个介绍。
本人用的是CentOS系统,zookeeper-3.4.9,Java-1.8,Java环境的搭建以及zookeeper的下载我在这里就不再多说了,我的所有操作都是在/data/zookeeper目录下。
一、单机模式
1.新建目录zookeeper_single,将下载好的zookeeper-3.4.9.tar.gz拷进该目录。
2.解压zookeeper。
tar –zxvf zookeeper-3.4.9.tar.gz
3.在zookeeper-3.4.9目录下新建data,logs两个文件夹。
4.进入zookeeper-3.4.9/conf目录,把zoo_sample.cfg文件复制一份名字改成zoo.cfg。
cp zoo_sample.cfg zoo.cfg
5.修改zoo.cfg文件,需要修改以下几个地方。
dataDir=/data/zookeeper/zookeeper_single/zookeeper-3.4.9/data
dataLogDir=/data/zookeeper/zookeeper_single/zookeeper-3.4.9/logs
clientPort=2181
6.配置完以后,就可以启动zookeeper服务了,进入zookeeper-3.4.9/bin目录,启动zookeeper服务。
./zkServer.sh start
7.启动完成后,查看服务状态。
./zkServer.sh status
二、伪分布式模式
1.新建目录zookeeper_cluster_fake,将下载好的zookeeper-3.4.9.tar.gz拷进该目录。
2.解压zookeeper。
tar –zxvf zookeeper-3.4.9.tar.gz
3.解压后将zookeeper-3.4.9改名为zookeeper_01,在zookeeper_01目录下新建data,logs两个文件夹。
4.进入zookeeper_01/conf目录,把zoo_sample.cfg文件复制一份名字改成zoo.cfg。
cp zoo_sample.cfg zoo.cfg
5.将zookeeper_01再复制两份分别取名为zookeeper_02和zookeeper_03。
cp zookeeper_01 zookeeper_02
cp zookeeper_01 zookeeper_03
6.分别修改zookeeper_01,zookeeper_02和zookeeper_03中conf目录下zoo.cfg文件。
zookeeper_01的配置(其中前三项是配置文件中有的,只要改成自己的配置就可以,后面三项添加到配置文件末尾):
dataDir=/data/zookeeper/zookeeper_cluster_fake/zookeeper_01/data
dataLogDir=/data/zookeeper/zookeeper_cluster_fake/zookeeper_01/logs
clientPort=2181
server.1=192.168.71.82:2881:3881
server.2=192.168.71.82:2882:3882
server.3=192.168.71.82:2883:3883
zookeeper_02的配置:
dataDir=/data/zookeeper/zookeeper_cluster_fake/zookeeper_02/data
dataLogDir=/data/zookeeper/zookeeper_cluster_fake/zookeeper_02/logs
clientPort=2182
server.1=192.168.71.82:2881:3881
server.2=192.168.71.82:2882:3882
server.3=192.168.71.82:2883:3883
zookeeper_03的配置:
dataDir=/data/zookeeper/zookeeper_cluster_fake/zookeeper_03/data
dataLogDir=/data/zookeeper/zookeeper_cluster_fake/zookeeper_03/logs
clientPort=2183
server.1=172.16.20.101:2881:3881
server.2=172.16.20.101:2882:3882
server.3=172.16.20.101:2883:3883
7.分别在zookeeper_01,zookeeper_02和zookeeper_03三个目录的data下新建myid文件,内容分别为server.1,server.2,server.3后面的数字。
三、分布式模式
1.选取三台服务器172.16.20.101,172.16.20.102,172.16.20.103。
2.在172.16.20.101这台服务器/data/zookeeper目录下操作,新建目录zookeeper_cluster,将下载好的zookeeper-3.4.9.tar.gz拷进该目录。
3.解压zookeeper。
tar -zxvf zookeeper-3.4.9.tar.gz
4.在/data/zookeeper/zookeeper_cluster/zookeeper-3.4.9目录下新建data,logs两个文件夹。
5.进入zookeeper-3.4.9/conf目录,把zoo_sample.cfg文件复制一份名字改成zoo.cfg。
cp zoo_sample.cfg zoo.cfg
6.修改zoo.cfg文件,需要修改以下几个地方:
dataDir=/data/zookeeper/zookeeper_cluster/zookeeper-3.4.9/data
dataLogDir=/data/zookeeper/zookeeper_cluster/zookeeper-3.4.9/logs
clientPort=2181
同时在文件末尾添加:
server.1=172.16.20.101:2888:3888
server.2=172.16.20.102:2888:3888
server.3=172.16.20.103:2888:3888
7.将配置好的zookeeper复制到另外两台服务器上。
scp -r /data/zookeeper root@172.16.20.102:/data
scp -r /data/zookeeper root@172.16.20.103:/data
8.分别在三台服务器的/data/zookeeper/zookeeper_cluster/zookeeper-3.4.9/data目录下新建myid文件,内容分别为server.1,server.2,server.3后面的数字,例如:在172.16.20.101服务器上执行如下命令,另外两台服务器类似。
echo "1" > myid
9.分别进入三台服各器的/data/zookeeper/zookeeper_cluster/zookeeper-3.4.9/bin目录下,启动服务。
./zkServer.sh start
10.启动完成后,查看服务状态。
./zkServer.sh status