本人現在對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