ZooKeeper---搭建

簡要


ZooKeeper的安裝模式分為三種夭苗,分別為:單機(jī)模式(stand-alone)缀遍、集群模式和集群偽分布模式筷弦。ZooKeeper 單機(jī)模式的安裝相對比較簡單,如果第一次接觸ZooKeeper的話术唬,建議安裝ZooKeeper單機(jī)模式或者集群偽分布模式薪伏。

安裝


  • 首先去官網(wǎng)下載ZooKeeper穩(wěn)定版
  • 自備JDK 6以上環(huán)境
  • 解壓 tar xvzf zookeeper-x.x.x.tar
  • 配置文件
    在zookeeper x.x.x/conf 下,將zoo_sample.cfg 復(fù)制一份為zoo.cfg
    配置項(xiàng)解析:
    • tickTime=2000
      基本事件單元,以毫秒為單位粗仓。它用來控制心跳和超時(shí)嫁怀,默認(rèn)情況下最小的會(huì)話超時(shí)時(shí)間為兩倍的 tickTime

    • dataDir=/tmp/zookeeper
      存儲內(nèi)存中數(shù)據(jù)庫快照的位置;
      注意 應(yīng)該謹(jǐn)慎地選擇日志存放的位置借浊,使用專用的日志存儲設(shè)備能夠大大地提高系統(tǒng)的性能眶掌,如果將日志存儲在比較繁忙的存儲設(shè)備上,那么將會(huì)在很大程度上影響系統(tǒng)的性能巴碗。

    • dataLogDir
      這個(gè)操作將管理機(jī)器把事務(wù)日志寫入到“ dataLogDir ”所指定的目錄朴爬,而不是“ dataDir ”所指定的目錄。這將允許使用一個(gè)專用的日志設(shè)備并且?guī)椭覀儽苊馊罩竞涂煺罩g的競爭橡淆。

    • clientPort=2181
      ** 監(jiān)聽客戶端連接的端口**

    • maxClientCnxns=60
      這個(gè)操作將限制連接到 ZooKeeper 的客戶端的數(shù)量召噩,限制并發(fā)連接的數(shù)量母赵,它通過 IP 來區(qū)分不同的客戶端。此配置選項(xiàng)可以用來阻止某些類別的 Dos 攻擊具滴。將它設(shè)置為 0 或者忽略而不進(jìn)行設(shè)置將會(huì)取消對并發(fā)連接的限制

    • initLimit=10(集群配置)
      此配置表示凹嘲,允許 follower (相對于 leader 而言的“客戶端”)連接并同步到 leader 的初始化連接時(shí)間,它以 tickTime 的倍數(shù)來表示构韵。當(dāng)超過設(shè)置倍數(shù)的 tickTime 時(shí)間周蹭,則連接失敗。

    • syncLimit=5(集群配置)
      此配置表示疲恢, leader 與 follower 之間發(fā)送消息凶朗,請求和應(yīng)答時(shí)間長度。如果 follower 在設(shè)置的時(shí)間內(nèi)不能與leader 進(jìn)行通信显拳,那么此 follower 將被丟棄棚愤。

    • autopurge.snapRetainCount=3
      這個(gè)參數(shù)和autopurge.purgeInterval搭配使用,這個(gè)參數(shù)指定了需要保留的文件數(shù)目杂数。默認(rèn)是保留3個(gè)宛畦。

    • autopurge.purgeInterval=1
      這個(gè)參數(shù)指定了清理頻率,單位是小時(shí)揍移,需要填寫一個(gè)1或更大的整數(shù)次和,默認(rèn)是0,表示不開啟自己清理功能那伐。

單機(jī)版

  • 單機(jī)版zoo.cfg配置如下:
    clientPort=2181 dataDir=/tmp/zookeeper tickTime=2000
  • 啟動(dòng)方式
    直接在bin目錄踏施,運(yùn)行 zkServer.sh start
Paste_Image.png

成功啟動(dòng)

Paste_Image.png

聯(lián)機(jī)版

  • 聯(lián)機(jī)版每臺機(jī)器的zoo.cfg配置如下:
    tickTime=2000 dataDir=/tmp/zookeeper clientPort=2181 initLimit=10 syncLimit=5 maxClientCnxns=60 server.1=ip1:2887:3887 server.n=ip2:2888:3888 ... (實(shí)際上,有多少臺機(jī)器喧锦,這邊就要配多少個(gè)ip,聯(lián)機(jī)版下組成集群读规,端口可以一樣抓督,但是在單機(jī)多實(shí)例下燃少,端口必須不同,否則會(huì)有沖突,詳細(xì)見下方)
  • 啟動(dòng)方式跟單機(jī)版一致(窮人只有一臺vps,請自行測試)

單機(jī)多實(shí)例版

一臺機(jī)器铃在,啟動(dòng)多個(gè)zooKeeper

  • 單機(jī)多實(shí)例版每個(gè)實(shí)例的zoo.cfg配置如下:
    • zoo1.cfg:
      tickTime=2000 dataDir=/tmp/zookeeper/zk_data_1 clientPort=2181 initLimit=10 syncLimit=5 maxClientCnxns=60 server.1=localhost:2887:3887 server.2=localhost:2888:3888
    • zoo2.cfg:
      tickTime=2000 dataDir=/tmp/zookeeper/zk_data_2 clientPort=2182 initLimit=10 syncLimit=5 maxClientCnxns=60 server.1=localhost:2887:3887 server.2=localhost:2888:3888

注意dataDir的路徑是不一樣的阵具,clientPort也必須是不一樣

  • 啟動(dòng)方式
    直接./zkServer.sh start zooX.cfg
Paste_Image.png

** 然并卵,當(dāng)查看輸出文件的時(shí)候定铜,你會(huì)發(fā)現(xiàn)根本就沒跑起來阳液,還拋異常了**

Paste_Image.png

2017-06-05 02:44:07,009 [myid:] - INFO [main:QuorumPeerConfig@124] - Reading configuration from: ./conf/zoo1.cfg 2017-06-05 02:44:07,448 [myid:] - INFO [main:QuorumPeer$QuorumServer@149] - Resolved hostname: localhost to address: localhost/127.0.0.1 2017-06-05 02:44:07,449 [myid:] - INFO [main:QuorumPeer$QuorumServer@149] - Resolved hostname: localhost to address: localhost/127.0.0.1 2017-06-05 02:44:07,459 [myid:] - WARN [main:QuorumPeerConfig@305] - No server failure will be tolerated. You need at least 3 servers. 2017-06-05 02:44:07,459 [myid:] - INFO [main:QuorumPeerConfig@352] - Defaulting to majority quorums 2017-06-05 02:44:07,462 [myid:] - ERROR [main:QuorumPeerMain@85] - Invalid config, exiting abnormally org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing ./conf/zoo1.cfg at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:144) at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:101) at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78) Caused by: java.lang.IllegalArgumentException: /tmp/zookeeper/data1/myid file is missing at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:362) at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:140) ... 2 more Invalid config, exiting abnormally
之前一直想,它是怎么在同一臺機(jī)器上揣炕,識別到自己就是server.1帘皿,并且使用對應(yīng)的端口,它報(bào)的就是這個(gè)問題.
解決方式: 在配置文件中的dataDir指定的目錄下畸陡,創(chuàng)建一個(gè)myid的文件鹰溜,里面的內(nèi)容只有一個(gè)數(shù)字虽填,就是server.x后面的x,例如zoo1.cfg,采用server.1的ip與端口,則在對應(yīng)的dataDir下創(chuàng)建一個(gè)myid,并把數(shù)字寫入

Paste_Image.png

再重新跑起來,問題解決.

測試對應(yīng)的zooKeeper進(jìn)程是否有正常運(yùn)行曹动,使用命令
echo stat | nc yourZooKeeperIP yourZooKeeperPort
有返回即正常

Paste_Image.png

ZooKeeper命令


表 1 : ZooKeeper 四字命令

ZooKeeper 四字命令 功能描述
conf 輸出相關(guān)服務(wù)配置的詳細(xì)信息斋日。
cons 列出所有連接到服務(wù)器的客戶端的完全的連接 / 會(huì)話的詳細(xì)信息。包括“接受 / 發(fā)送”的包數(shù)量墓陈、會(huì)話 id 恶守、操作延遲、最后的操作執(zhí)行等等信息贡必。
dump 列出未經(jīng)處理的會(huì)話和臨時(shí)節(jié)點(diǎn)兔港。
envi 輸出關(guān)于服務(wù)環(huán)境的詳細(xì)信息(區(qū)別于 conf 命令)。
reqs 列出未經(jīng)處理的請求
ruok 測試服務(wù)是否處于正確狀態(tài)赊级。如果確實(shí)如此押框,那么服務(wù)返回“imok ”,否則不做任何相應(yīng)理逊。
stat 輸出關(guān)于性能和連接的客戶端的列表橡伞。
wchs 列出服務(wù)器 watch 的詳細(xì)信息。
wchc 通過 session 列出服務(wù)器 watch 的詳細(xì)信息晋被,它的輸出是一個(gè)與watch 相關(guān)的會(huì)話的列表兑徘。
wchp 通過路徑列出服務(wù)器 watch 的詳細(xì)信息。它輸出一個(gè)與 session相關(guān)的路徑羡洛。

下圖 1 是 ZooKeeper 四字命令的簡單用例:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末挂脑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子欲侮,更是在濱河造成了極大的恐慌崭闲,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件威蕉,死亡現(xiàn)場離奇詭異刁俭,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)韧涨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門牍戚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人虑粥,你說我怎么就攤上這事如孝。” “怎么了娩贷?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵第晰,是天一觀的道長。 經(jīng)常有香客問我,道長茁瘦,這世上最難降的妖魔是什么罗岖? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮腹躁,結(jié)果婚禮上桑包,老公的妹妹穿的比我還像新娘。我一直安慰自己纺非,他們只是感情好哑了,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著烧颖,像睡著了一般弱左。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上炕淮,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天拆火,我揣著相機(jī)與錄音,去河邊找鬼涂圆。 笑死们镜,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的润歉。 我是一名探鬼主播模狭,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼踩衩!你這毒婦竟也來了嚼鹉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤驱富,失蹤者是張志新(化名)和其女友劉穎锚赤,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體褐鸥,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡线脚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了晶疼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酒贬。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡又憨,死狀恐怖翠霍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蠢莺,我是刑警寧澤寒匙,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響锄弱,放射性物質(zhì)發(fā)生泄漏考蕾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一会宪、第九天 我趴在偏房一處隱蔽的房頂上張望肖卧。 院中可真熱鬧,春花似錦掸鹅、人聲如沸塞帐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽葵姥。三九已至,卻和暖如春句携,著一層夾襖步出監(jiān)牢的瞬間榔幸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工矮嫉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留削咆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓蠢笋,卻偏偏與公主長得像态辛,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子挺尿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345

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