本人如今对zookeeper的环境搭建作一个总结,通常zookeeper的安装部署能够有三种模式,单机模式、伪分布式和分布式,这三种模式在何时应用具体看你们的使用场景,若是你只有一台机器且只是想本身开发测试时用,你能够安装个单机模式,简单又实用。若是想装逼但又没有足够的机器,那你能够选择伪分布式的方式搭建,这能够知足你心里高大上的分布式需求又能够知足没有机器的屌丝现状。若是手头有三台以上的服务器,那就能够大展高富帅的风采,直接上真的分布式,真的分布式部署通常是在系统的正式环境中应用。下面我来对这三种搭建模式做个介绍。java
本人用的是CentOS系统,zookeeper-3.4.9,java-1.8,Java环境的搭建以及zookeeper的下载我在这里就再也不多说了,个人全部操做都是在/data/zookeeper目录下。服务器
1、单机模式分布式
1.新建目录zookeeper_single,将下载好的zookeeper-3.4.9.tar.gz拷进该目录。测试
2.解压zookeeper。spa
tar –zxvf zookeeper-3.4.9.tar.gzcode
3.在zookeeper-3.4.9目录下新建data,logs两个文件夹。server
4.进入zookeeper-3.4.9/conf目录,把zoo_sample.cfg文件复制一份名字改为zoo.cfg。blog
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
2、伪分布式模式
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后面的数字。
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