Zookeeper是一種分布式協(xié)調(diào)服務(wù)已球,用于管理大型主機(jī)赁酝,在分布式環(huán)境中協(xié)調(diào)和管理服務(wù)是一個(gè)復(fù)雜的過(guò)程葵姥。ZooKeeper通過(guò)其簡(jiǎn)單的架構(gòu)和API解決了這個(gè)問(wèn)題。ZooKeeper允許開(kāi)發(fā)人員專注于核心應(yīng)用程序邏輯蔫饰,而不必?fù)?dān)心應(yīng)用程序的分布式特性撵渡。
Zookeeper作為Hadoop和Hbase的重要組件,可以為分布式應(yīng)用程序協(xié)調(diào)服務(wù)死嗦,同時(shí)還能使用Java和C的接口趋距。
接下來(lái)我們就來(lái)安裝Zookeeper,首先我們到Zookeeper官網(wǎng)下載安裝包越除,
首先我們來(lái)配置一個(gè)單節(jié)點(diǎn)节腐,通過(guò)三個(gè)步驟即可安裝成功,:
下載安裝
下載好Zookeeper安裝包之后摘盆,我們解壓到/app
目錄(目錄的選擇可以自定義)下:
tar -zxvf zookeeper-3.4.13.tar.gz -C /app
創(chuàng)建文件夾與配置文件
解壓好之后創(chuàng)建必要的文件夾:
#移動(dòng)到Zookeeper的根目錄下創(chuàng)建data目錄和logs目錄
cd /app/zookeeper-3.4.13/
mkdir data
mkdir logs
移動(dòng)到conf
目錄下創(chuàng)建配zoo.cfg
置文件翼雀,添加如下內(nèi)容(也可以查看zoo_sample.cfg
然后修改 ):
tickTime=2000
dataDir=/app/zookeeper-3.4.13/data
dataLogDir=/app/zookeeper-3.4.13/logs
clientPort=2181
注意:其中的dataDir
和dataLogDir
應(yīng)該是你自己本機(jī)Zookeeper的data
和logs
目錄。
啟動(dòng)
進(jìn)入bin
目錄孩擂,輸入如下命令測(cè)試啟動(dòng)和停止:
./zkServer.sh start
./zkServer.sh stop
./zkServer.sh restart
./zkServer.sh status
開(kāi)啟服務(wù)Zookeeper服務(wù)之后輸入jps
出現(xiàn)如下界面則代表安裝啟動(dòng)成功:
偽分布式集群安裝
偽分布式和分布式類似狼渊,即我們將集群搭建在一臺(tái)機(jī)器上,為什么這樣做呢类垦,hh狈邑,為了方便,因?yàn)閯傞_(kāi)始學(xué)習(xí)這個(gè)知識(shí)在一臺(tái)機(jī)器上還是要比在多臺(tái)機(jī)器上操作更加方便一些的蚤认。
接下來(lái)我們來(lái)配置一個(gè)偽分布式的集群米苹。
首先我們修改之前創(chuàng)建的zoo.cfg
文件:
tickTime=2000
dataDir=/app/zookeepers/zookeeper1/data
dataLogDir=/app/zookeepers/zookeeper1/logs
clientPort=2181
initLimit=5
syncLimit=2
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:4888
server.3=127.0.0.1:2890:5888
接下來(lái)我們將Zookeeper的文件夾拷貝三份,分別為Zookeeper1/Zookeeper2/Zookeeper3/
砰琢。
接下來(lái)我們分別設(shè)置三個(gè)Zookeeper
Zookeeper1配置
zoo.cfg
文件如下:
tickTime=2000
dataDir=/app/zookeepers/zookeeper1/data
dataLogDir=/app/zookeepers/zookeeper1/logs
clientPort=2181
initLimit=5
syncLimit=2
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:4888
server.3=127.0.0.1:2890:5888
還需要修改data
目錄下的myid
文件蘸嘶,添加1
到myid
文件中良瞧。
echo 1 > data/myid
Zookeeper2配置
修改zoo.cfg
文件,如下:
tickTime=2000
dataDir=/app/zookeepers/zookeeper2/data
dataLogDir=/app/zookeepers/zookeeper2/logs
clientPort=3181
initLimit=5
syncLimit=2
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:4888
server.3=127.0.0.1:2890:5888
修改data
目錄下的myid
文件训唱,添加2
到文件中:
echo 2 > data/myid
Zookeeper3配置
修改zoo.cfg
文件褥蚯,如下:
tickTime=2000
dataDir=/app/zookeepers/zookeeper3/data
dataLogDir=/app/zookeepers/zookeeper3/logs
clientPort=4181
initLimit=5
syncLimit=2
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:4888
server.3=127.0.0.1:2890:5888
修改data
目錄下的myid
文件,添加2
到文件中:
echo 3 > data/myid
配置三個(gè)Zookeeper的時(shí)候需要注意clientPort
和dataDir
况增,logDir
的值赞庶。
完成上述三個(gè)配置就可以分別啟動(dòng)三個(gè)集群了,啟動(dòng)之后輸入jps出現(xiàn)如下界面即代表配置成功巡通。
Zookeeper集群搭建
集群和我們搭建的偽集群類似尘执,只需要將配置中的127.0.0.1
改成其他機(jī)器的IP地址即可實(shí)現(xiàn)真正的集群搭建舍哄。