本人現在對zookeeper的環境搭建做一個總結,一般zookeeper的安裝部署可以有三種模式,單機模式、偽分散式和分散式,這三種模式在什麼時候應用具體看大家的使用場景,如果你只有一臺機器且只是想自己開發測試時用,你可以安裝個單機模式,簡單又實用。如果想裝逼但又沒有足夠的機器,那你可以選擇偽分散式 ...
本人現在對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 [email protected]:/data
scp -r /data/zookeeper [email protected]:/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