Zookeeper 安裝與部署

Zookeeper安裝方式有三種彻桃,單機模式集群模式以及偽集群模式媒楼。

■ 單機模式:Zookeeper只運行在一臺服務(wù)器上花墩,適合測試環(huán)境逆济;

■ 偽集群模式:就是在一臺物理機上運行多個Zookeeper 實例;

■ 集群模式:Zookeeper運行于一個集群上绊汹,適合生產(chǎn)環(huán)境稽屏,這個計算機集群被稱為一個“集合體”(ensemble)

單機模式

下載 ZooKeeper,解壓西乖,將 conf 目錄下的?zoo_sample.cfg 復(fù)制一份重命名為 zoo.cfg

cp?zoo_sample.cfg zoo.cfg

然后直接啟動 ZooKeeper 就行了

bin/zkServer.sh start

啟動 ZooKeeper

查看 ZooKeeper 運行狀態(tài)

查看 ZooKeeper 運行狀態(tài)

可以看到 ZooKeeper 的 Mode 是單機模式的(standalone)

使用客戶端連接? ZK

本地連接

bin/zkCli.sh

本地連接 ZK

遠程連接 ZK

bin/zkCli.sh -server ip:port

遠程連接 ZK

停止 ZooKeeper

bin/zkServer.sh stop

停止 ZK


偽集群模式

Zookeeper不但可以在單機上運行單機模式Zookeeper狐榔,而且可以在單機模擬集群模式 Zookeeper的運行,也就是將不同節(jié)點運行在同一臺機器获雕。我們在實驗的時候薄腻,可以先使用少量數(shù)據(jù)在集群偽分布模式下進行測試。當(dāng)測試可行的時候届案,再將數(shù)據(jù)移植到集群模式進行真實的數(shù)據(jù)實驗庵楷。這樣不但保證了它的可行性,同時大大提高了實驗的效率楣颠。這種搭建方式尽纽,比較簡便,成本比較低童漩,適合測試和學(xué)習(xí)弄贿,如果你的手頭機器不足,就可以在一臺機器上部署了 3個server矫膨。

注意事項

在一臺機器上部署了3個server差凹,需要注意的是:在偽分布式模式下我們使用的每個配置文件模擬一臺機器,也就是說單臺機器上運行多個Zookeeper實例侧馅。但是危尿,必須保證每個配置文檔的各個端口號不能沖突,除了clientPort不同之外馁痴,dataDir也不同谊娇。另外,還要在dataDir所對應(yīng)的目錄中創(chuàng)建myid文件來指定對應(yīng)的Zookeeper服務(wù)器實例弥搞。

■?clientPort端口:如果在1臺機器上部署多個server邮绿,那么每臺機器都要不同的 clientPort渠旁,比如 server1是2181,server2是2182,server3是2183

■?dataDir和dataLogDir:dataDir和dataLogDir也需要區(qū)分下船逮,將數(shù)據(jù)文件和日志文件分開存放顾腊,同時每個server的這兩變量所對應(yīng)的路徑都是不同的

■?server.X和myid: server.X 這個數(shù)字就是對應(yīng),data/myid中的數(shù)字挖胃。在3個server的myid文件中分別寫入了1杂靶,2,3酱鸭,那么每個server中的zoo.cfg都配 server.1 server.2,server.3就行了吗垮。因為在同一臺機器上,后面連著的2個端口凹髓,3個server都不要一樣烁登,否則端口沖突。

同樣將 conf 目錄下的?zoo_sample.cfg 復(fù)制三份蔚舀,分別重命名為 zoo1.cfg饵沧,zoo2.cfg,zoo3.cfg赌躺。

cp?zoo_sample.cfg zoo1.cfg

cp?zoo_sample.cfg zoo2.cfg

cp?zoo_sample.cfg zoo3.cfg

然后分別修改每個配置文件狼牺,我的配置如下:

zoo1.cfg
zoo2.cfg
zoo3.cfg

創(chuàng)建 zoox.cfg 配置文件中 dataDir 和 dataLogDir 的路徑,

# 創(chuàng)建數(shù)據(jù)目錄

mkdir -p /var/elvis/zookeeper/data/server1

mkdir -p?/var/elvis/zookeeper/data/server2

mkdir -p?/var/elvis/zookeeper/data/server3

# 創(chuàng)建日志文件目錄

mkdir -p?/var/elvis/zookeeper/logs/server1

mkdir -p?/var/elvis/zookeeper/logs/server1

mkdir -p?/var/elvis/zookeeper/logs/server1

在每個?dataDir 目錄下常見一個 myid 文件并在其中寫入 server 對應(yīng)的序號礼患,比如在?/var/elvis/zookeeper/data/server1 目錄下創(chuàng)建一個 myid 文件是钥,并在 myid 中寫入 1,其他目錄同理缅叠。

dataDir 目錄
dataLogDir 目錄
每個 myid 中寫入對應(yīng)的 Server 序列號

然后使用每個配置文件啟動3個 ZooKeeper 實例:

bin/zkServer.sh stop conf/zoo1.cfg

bin/zkServer.sh stop conf/zoo2.cfg

bin/zkServer.sh stop conf/zoo3.cfg

啟動3個 ZK 實例

可以使用 jps 來查看是否啟動成功

jps -ml

jps 查看 zk 是否啟動

查看 zk 的運行狀態(tài)

bin/zkServer.sh status conf/zoo1.cfg

bin/zkServer.sh status conf/zoo2.cfg

bin/zkServer.sh status conf/zoo3.cfg

查看 ZK 運行狀態(tài)

可以看到 ZK 的 Mode 不再是 standalone 了悄泥,而且 server2 作為 leader,其他2臺server 作為 follower肤粱。

客戶端連接 zk 集群

本地連接/遠程連接

bin/zkCli.sh -server ip:2181

bin/zkCli.sh -server ip:2182

bin/zkCli.sh -server ip:2183

連接 2181 端口
連接 2182 端口
連接 2183 端口

可以看見码泞,我們遠程連接任何一個端口都能夠連接上。

上面我們知道 server2 是 leader狼犯,所以我們使用客戶端連接到 server2上,然后創(chuàng)建一些節(jié)點领铐。

bin/zkCli.sh -server 39.106.111.160:2182

create /zktest 123

連接 server2 并創(chuàng)建一個節(jié)點

現(xiàn)在我們在本地連接到 server1 看能不能看到剛才我們創(chuàng)建的節(jié)點悯森。

bin/zkCli.sh -server localhost:2181

ls /

get /zktest

連接 server1 獲取數(shù)據(jù)

可以看到我們在 server1 上也獲取到了剛才我們通過遠程連接在 server2 上創(chuàng)建的 /zktest 數(shù)據(jù)。

現(xiàn)在我們嘗試將 server2 這個leader 給停掉绪撵。

bin/zkServer.sh stop conf/zoo2.cfg

停掉 server2 這個 leader

然后查看 server1和 server3 的運行狀態(tài)

查看 server1 和 server3 狀態(tài)

現(xiàn)在可以看到 ZooKeeper 通過選舉瓢姻,將 server3選舉成了新的 leader。

這個時候我們剛才遠程連接到 server2 的客戶端開始報錯了音诈,zkCli.sh 客戶端并沒有實現(xiàn)連接斷后幻碱,自動連接其他節(jié)點的功能绎狭。

zkCli.sh 連接到 server2 不斷的報錯

這時我們再重啟 server2

bin/zkServer.sh start conf/zoo2.cfg

然后再來查看各個 server 的運行狀態(tài)

server 的運行狀態(tài)

可以看到 server2 再次加入組織,不過 server2已經(jīng)不再是 leader 了褥傍。

這個時候連接 sever2 的客戶端也從報錯中恢復(fù)過來儡嘶。

集群模式

集群模式和偽分布式部署基本相同,唯一的區(qū)別就是 zoo.cfg 中恍风,ip 配置不在是127.0.0.1 或 localhost 了蹦狂,而是真正的機器 ip。

server.2= ip:2288:3388

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末朋贬,一起剝皮案震驚了整個濱河市凯楔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌锦募,老刑警劉巖摆屯,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異糠亩,居然都是意外死亡虐骑,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門削解,熙熙樓的掌柜王于貴愁眉苦臉地迎上來富弦,“玉大人,你說我怎么就攤上這事氛驮⊥蠊瘢” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵矫废,是天一觀的道長盏缤。 經(jīng)常有香客問我,道長蓖扑,這世上最難降的妖魔是什么唉铜? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮律杠,結(jié)果婚禮上潭流,老公的妹妹穿的比我還像新娘。我一直安慰自己柜去,他們只是感情好灰嫉,可當(dāng)我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嗓奢,像睡著了一般讼撒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天根盒,我揣著相機與錄音钳幅,去河邊找鬼。 笑死炎滞,一個胖子當(dāng)著我的面吹牛敢艰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播厂榛,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼盖矫,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了击奶?” 一聲冷哼從身側(cè)響起辈双,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎柜砾,沒想到半個月后湃望,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡痰驱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年证芭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片担映。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡废士,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蝇完,到底是詐尸還是另有隱情官硝,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布短蜕,位于F島的核電站氢架,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏朋魔。R本人自食惡果不足惜岖研,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望警检。 院中可真熱鬧孙援,春花似錦、人聲如沸扇雕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽洼裤。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間腮鞍,已是汗流浹背值骇。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留移国,地道東北人吱瘩。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像迹缀,于是被迫代替她去往敵國和親使碾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容