這篇文章主要介紹“zookeeper單機(jī)多實(shí)例和分布式部署方法介紹”,在日常操作中,相信很多人在zookeeper單機(jī)多實(shí)例和分布式部署方法介紹問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”zookeeper單機(jī)多實(shí)例和分布式部署方法介紹”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
創(chuàng)新互聯(lián)建站專(zhuān)注于企業(yè)全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、港閘網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5響應(yīng)式網(wǎng)站、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為港閘等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
1. 準(zhǔn)備工作:
1)需要linux環(huán)境,推薦用ubuntu的系統(tǒng)。學(xué)習(xí)的話(huà)使用oracle的virtual box安裝虛擬機(jī),網(wǎng)上找下安裝文檔就可以裝好了,而生產(chǎn)環(huán)境一般都會(huì)裝好的。ubuntu下載鏈接:
32位:http://mirrors.zju.edu.cn/ubuntu-releases//precise/ubuntu-12.04.3-server-i386.iso 或 64位:http://mirrors.hust.edu.cn/ubuntu-releases//precise/ubuntu-12.04.3-server-amd64.iso
2) JDK:zookeeper需要java運(yùn)行環(huán)境,這個(gè)建議1.6以上,配置好 JAVA_HOME 、CLASSPATH、 PATH 變量。
jdk下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
環(huán)境變量配置,home目錄下的.profile即可:
export JAVA_HOME="/usr/lib/jvm/jdk1.7.0_40" export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export ZOOKEEPER_HOME="/data/apache/zookeeper" export PATH="$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin"
3) zookeeper安裝包:http://zookeeper.apache.org/releases.html 下載穩(wěn)定版本,現(xiàn)在的版本是3.4.5
2. 各種解壓,不多說(shuō),建議對(duì)解壓后的目錄(帶有版本號(hào)的),建立軟連接 zk ,方便后面的配置和升級(jí)。
我解壓后放在: /data/apache/zookeeper下面,并修改文件權(quán)限為運(yùn)行用戶(hù)權(quán)限:
sudo chown -R zqgame:zqgame zookeeper
zqgame:zqgame是運(yùn)行zookeeper的用戶(hù)和用戶(hù)所在組,查看權(quán)限:
zqgame@develop-test-web:/data/apache$ ll total 16 drwxr-xr-x 4 zqgame zqgame 4096 Jan 17 12:41 ./ drwxr-xr-x 11 root root 4096 Dec 13 14:49 ../ drwxr-xr-x 11 zqgame zqgame 4096 Nov 20 15:50 hadoop-2.2.0/ drwxr-xr-x 12 zqgame zqgame 4096 Jan 17 12:56 zookeeper/ zqgame@develop-test-web:/data/apache$
3. 端口檢查,通常使用的端口 2181,2888,3888 ,檢查是否占用,占用則下面的配置中更改端口。
netstat -ano | grep 2181
4.單機(jī)多實(shí)例配置及啟動(dòng):
#生成配置文件,配置文件名隨便,這里是zoo.cfg cp /data/apache/zookeeper/conf/zoo_sample.cfg /data/apache/zookeeper/conf/zoo.cfg vi /data/apache/zookeeper/conf/zoo.cfg
配置文件內(nèi)容:
tickTime=2000 initLimit=5 syncLimit=5 dataDir=/data/apache/zookeeper/data # 目錄需要手工建立,存放 zk 數(shù)據(jù),主要是快照 clientPort=2181 # dataLogDir事務(wù)日志存放目錄,最好配置,事務(wù)日志的寫(xiě)入速度嚴(yán)重影響zookeeper的性能 dataLogDir=/data/apache/zookeeper/datalog server.1=192.168.130.170:2889:3889 server.2=192.168.130.170:2890:3890 server.3=192.168.130.170:2891:3891
拷貝配置文件,生成三個(gè)配置文件:zoo-slave1.cfg: (另外兩個(gè) zoo-slave2.cfg 和 zoo-slave3.cfg)。
zoo-slave1.cfg需要為dataDir和dataLogDir設(shè)置目錄,改動(dòng)內(nèi)容如下:
dataDir=/data/apache/zookeeper/data/slave1 dataLogDir=/data/apache/zookeeper/datalog/slave1 clientPort=2182
zoo-slave2.cfg :
dataDir=/data/apache/zookeeper/data/slave2 dataLogDir=/data/apache/zookeeper/datalog/slave2 clientPort=2183
zoo-slave3.cfg :
dataDir=/data/apache/zookeeper/data/slave3 dataLogDir=/data/apache/zookeeper/datalog/slave3 clientPort=2184
如上配置相同的本機(jī)IP,不同的端口號(hào),這里配置了三個(gè)實(shí)例
如何區(qū)分到底是第幾個(gè)實(shí)例呢,就要有個(gè)id文件,名字必須是myid
echo "1" > /data/apache/zookeeper/data/slave1/myid echo "2" > /data/apache/zookeeper/data/slave1/myid echo "3" > /data/apache/zookeeper/data/slave1/myid
在三個(gè)窗口下迅速啟動(dòng):
bin/zkServer.sh start zoo-slave1.cfg bin/zkServer.sh start zoo-slave2.cfg bin/zkServer.sh start zoo-slave3.cfg
查看zookeeper選出來(lái)的leader,通過(guò)下面的腳本,分別指定配置文件,就可以查看哪一個(gè)實(shí)例是leader:
bin/zkServer.sh status zoo-slave1.cfg
可以看下如下輸出信息:
zqgame@develop-test-web:/data/apache/zookeeper$ bin/zkServer.sh status zoo-slave2.cfg JMX enabled by default Using config: /data/apache/zookeeper/bin/../conf/zoo-slave2.cfg Mode: leader
5、分布式部署:
與單機(jī)多實(shí)例差不多,不過(guò)不用三個(gè)目錄,只需要一個(gè)目錄,一個(gè)配置文件,三個(gè)不同IP,分發(fā)在不同的IP上,仍然是不同的myid。假設(shè)我有三臺(tái)獨(dú)立機(jī)器,那么zoo.cfg(只需要一個(gè)默認(rèn)的配置文件zoo.cfg)配置文件如下所示:
tickTime=2000 initLimit=5 syncLimit=5 dataDir=/data/apache/zookeeper/data # 目錄需要手工建立,存放 zk 數(shù)據(jù),主要是快照 clientPort=2181 # dataLogDir事務(wù)日志存放目錄,最好配置,事務(wù)日志的寫(xiě)入速度嚴(yán)重影響zookeeper的性能 dataLogDir=/data/apache/zookeeper/datalog server.1=192.168.130.101:2888:3888 server.2=192.168.130.102:2888:3888 server.3=192.168.130.103:2888:3888
然后在三臺(tái)機(jī)器上分別寫(xiě)入不同的myid:
#在192.168.130.101執(zhí)行下面一條 echo "1" > /data/apache/zookeeper/data/myid #在192.168.130.102執(zhí)行下面一條 echo "2" > /data/apache/zookeeper/data/myid #在192.168.130.103執(zhí)行下面一條 echo "3" > /data/apache/zookeeper/data/myid
這樣分別在三臺(tái)機(jī)器迅速啟動(dòng)zookeeper,此時(shí)不需要指定配置文件,默認(rèn)配置文件就是zoo.cfg:
bin/zkServer.sh start
查看啟動(dòng)后的狀態(tài):
bin/zkServer.sh status
進(jìn)入zookeeper的shell客戶(hù)端:
bin/zkCli.sh #進(jìn)入本機(jī)zookeeper的shell
進(jìn)入指定機(jī)器的shell客戶(hù)端:
bin/zkCli.sh -server 192.168.130.101
在查看啟動(dòng)狀態(tài)有錯(cuò)誤的情況下,稍等一會(huì)再查看,因?yàn)閦ookeeper啟動(dòng)后需要一點(diǎn)時(shí)間選出leader。以上配置和命令不了解的可見(jiàn)后續(xù)文章詳細(xì)解釋其用法。歡迎拍磚!
到此,關(guān)于“zookeeper單機(jī)多實(shí)例和分布式部署方法介紹”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!