本人如今對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