在CentOS 7下安裝Zookeeper

1唧喉、安裝及配置


首先呆躲,再安裝前异逐,需要安裝并配置好JDK(選擇Oracle Java8 SE)。

其次插掂,需要下載Zookeeper安裝包灰瞻,比如本例:zookeeper-3.4.9.tar.gz(可從Apache網(wǎng)站上下載http://www.apache.org/dyn/closer.cgi/zookeeper/),建議選擇相對穩(wěn)定的版本辅甥,不要選擇最新版酝润。

然后需要對其進(jìn)行解壓,解壓的目標(biāo)目錄可以自定義璃弄,比如本例為/usr/server等:

[root@ZookeeperA server]# tar –zxvf zookeeper-3.4.9.tar.gz

打開 /etc/profile文件要销,并在文件末尾加入如下路徑信息:

export ZOOKEEPER_HOME=/usr/server/zookeeper-3.4.9

export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf

然后使修改生效:

[root@ZookeeperA /]# source /etc/profile

最后,需要?jiǎng)?chuàng)建兩個(gè)必備的目錄(可以在任意路徑下谢揪,本例在zookeeper的主目錄下創(chuàng)建)蕉陋,一個(gè)用于裝數(shù)據(jù),另一個(gè)用于裝日志拨扶,這兩個(gè)目錄必須創(chuàng)建凳鬓,否則將會在使用過程中報(bào)錯(cuò);

建議不要使用同一個(gè)目錄患民,目錄名建議采用data和log:

[root@ZookeeperA zookeeper-3.4.9]# mkdir data

[root@ZookeeperA zookeeper-3.4.9]# mkdir log

2缩举、配置集群


2.1、修改主機(jī)名

需要事先將每一臺服務(wù)器名稱修改成指定的主機(jī)名:

[root@localhost /]# hostname

Localhost.localdomain

本例設(shè)置主機(jī)名分別為ZookeeperA、ZookeeperB和ZookeeperC仅孩,其中針對ZookeeperA的設(shè)置如下所示:

[root@localhost /]# hostnamectl --static set-hostname ZookeeperA

[root@localhost /]# hostname

ZookeeperA

2.2托猩、配置主機(jī)


首先需要配置主機(jī)的訪問列表,在/etc/hosts文件中辽慕,將集群中的所有主機(jī)及其IP地址進(jìn)行配置及映射京腥,如下所示:

127.0.0.1? localhost localhost.localdomain localhost4 localhost4.localdomain4

::1? ? ? ? localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.1.70 ZookeeperA

192.168.1.71 ZookeeperB

192.168.1.72 ZookeeperC

其中黑色內(nèi)容為配置的內(nèi)容,分別配置了ZookeeperA溅蛉、ZookeeperB和ZookeeperC三臺服務(wù)器可以互訪公浪,需要分別在這三臺機(jī)器的/etc/hosts文件添加此內(nèi)容。

特別需要注意:


127.0.0.1一行一定不能做修改船侧,若做了修改(比如講本機(jī)名稱localhost進(jìn)行了映射)欠气,zookeeper啟動后將會出現(xiàn)無法連接網(wǎng)絡(luò)錯(cuò)誤;

在分布式環(huán)境中镜撩,一定要忘記本機(jī) (localhost/127.0.0.1) 的概念预柒,完全用靜態(tài)IP來設(shè)置和定義。

127.0.0.1? localhost ZookeeperA localhost4 localhost4.localdomain4

::1? ? ? ? localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.1.70 ZookeeperA

192.168.1.71 ZookeeperB

192.168.1.72 ZookeeperC

2.3袁梗、配置文件


需要進(jìn)入zookeeper的conf路徑下宜鸯,將已存在的一個(gè)模板文件(zoo_sample.cfg)復(fù)制成zookeeper的配置文件(zoo.cfg)

[root@ZookeeperA conf]# cp zoo_sample.cfg zoo.cfg

首先,要在zoo.cfg文件中修改數(shù)據(jù)路徑以及增加log日志路徑設(shè)置围段,如下所示:

數(shù)據(jù)路徑顾翼,用于存放myid文件等

dataDir=/usr/server/zookeeper-3.4.9/data

日志文件路徑,用于存放日志

dataLogDir=/usr/server/zookeeper-3.4.9/log

然后打開該文件并添加如下代碼:

server.70=ZookeeperA:2888:3888

server.71=ZookeeperB:2888:3888

server.72=ZookeeperC:2888:3888

本例設(shè)定僅使用三臺服務(wù)器作為zookeeper的集群奈泪,按照如下格式進(jìn)行配置:

server.id=host:port:port

其中其中host名稱和port可以自定義,參數(shù)的含義如下:

? 例子中灸芳,ZookeeperA涝桅、ZookeeperB和ZookeeperC為三臺服務(wù)器的主機(jī)名,service.70通常會配置成master主機(jī)烙样,其他的配置成slave主機(jī)冯遂。

? 其次,第一個(gè)port(2888谒获,默認(rèn)端口號蛤肌,可以自定義)是“從服務(wù)器(follower)”連接到”主服務(wù)器(leader)“的端口號,第二個(gè)port(3888批狱,默認(rèn)端口號裸准,可以自定義)是進(jìn)行l(wèi)eadership選舉的端口號

2.4、設(shè)置MYID


然后在zoo.cfg 文件中配置的dataDir參數(shù)的路徑下(此路徑可以任意修改赔硫,默認(rèn)為”/tmp/zookeeper”)炒俱,創(chuàng)建myid文件,并將與本機(jī)對應(yīng)的service.n(本例為70~72)的n寫入文件,通常service. 后面的的數(shù)字n可以取IP地址的最后一位权悟,比較好識別砸王。

[root@ZookeeperA data]# vi myid

若本機(jī)為ZookeeperA,IP設(shè)為192.168.1.70峦阁,則文件內(nèi)容如下

70

然后將本機(jī)配置和安裝內(nèi)容全部復(fù)制到其他機(jī)器中:

[root@ZookeeperA data]# scp –r zookeeper-3.4.9/ KafkaB:/usr/server/zookeeper-3.4.9

[root@ZookeeperA data]# scp –r zookeeper-3.4.9/ KafkaC:/usr/server/zookeeper-3.4.9

再分別到ZookeeperB和ZookeeperC中修改dataDir參數(shù)指定的路徑下的myid文件內(nèi)容谦铃,將與本機(jī)對應(yīng)的service.n(本例為70~72)的n寫入文件,如本機(jī)為ZookeeperB榔昔,IP設(shè)為192.168.1.71荷辕,則文件內(nèi)容如下

71

為ZookeeperC,IP設(shè)為192.168.1.72件豌,則文件內(nèi)容如下

72

也可以采用Linux中簡便寫法(文件中僅有一行):

[root@ZookeeperA data]# echo “72” > /usr/server/zookeeper-3.4.9/data/myid

2.5疮方、配置防火墻


最后,打開防火墻端口:2888茧彤、3888骡显、2181,具體開放的端口是那個(gè)曾掂,需要根據(jù)配置的服務(wù)器參數(shù):server.id=host:port:port以及zoo.cfg中clientPort參數(shù)來確定:

[root@ZookeeperA zookeeper]# firewall-cmd --permanent --zone=public --add-port=2888/tcp

[root@ZookeeperA zookeeper]# firewall-cmd --permanent --zone=public --add-port=3888/tcp

[root@ZookeeperA zookeeper]# firewall-cmd --permanent --zone=public --add-port=2181/tcp

3惫谤、啟動集群


配置完成后,需要分別在每一臺服務(wù)器上執(zhí)行啟動珠洗,首先進(jìn)入zookeeper安裝目錄下的bin目錄下溜歪,執(zhí)行zkServer啟動即可(建議,在啟動集群之前许蓖,將每臺服務(wù)器重啟動一次):

[root@ZookeeperA bin]# zkServer.sh start

ZooKeeper JMX enabled by default

Using config: /usr/server/zookeeper-3.4.9/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED

然后再執(zhí)行如下命令:

[root@ZookeeperA bin]# jps

2983 QuorumPeerMain

3128 Jps

當(dāng)看你到此信息蝴猪,其中包含QuorumPeerMain(Zookeeper的進(jìn)程名)時(shí),代表當(dāng)前結(jié)點(diǎn)成功啟動膊爪;若沒有啟動自阱,可以通過如下命令,查看啟動過程出現(xiàn)的問題:

[root@ZookeeperA bin]# zkServer.sh start-foreground

此命令將會列出啟動時(shí)遇到的各種異常錯(cuò)誤等信息米酬。

可以在任意一臺主機(jī)上執(zhí)行如下命令沛豌,查看當(dāng)前主機(jī)在集群中節(jié)點(diǎn)的狀態(tài):

[root@ZookeeperB bin]# zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /usr/server/zookeeper-3.4.9/bin/../conf/zoo.cfg

Mode: follower

本例顯示ZookeeperB機(jī)器處于zookeeper的follower模式。

[root@ZookeeperC bin]# zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /usr/server/zookeeper-3.4.9/bin/../conf/zoo.cfg

Mode: leader

本例顯示ZookeeperC機(jī)器處于zookeeper的leader模式赃额。

4加派、客戶端訪問


配置完成后,可以使用zookeeper自帶的控制臺客戶端來查看安裝是否成功跳芳。

[root@ZookeeperB bin]# ./zkCli.sh -server ZookeeperA:2181

Connecting to ZookeeperA:2181

2016-09-14 18:03:43,829 [myid:] - INFO? [main:Environment@100] – Client

Welcome to ZooKeeper!

[zk: ZookeeperA:2181(CONNECTED) 0]

至此芍锦,已經(jīng)成功進(jìn)入了客戶端,并鏈接到了ZookeeperA服務(wù)器的2181端口筛严。

通過如下命令可以查看節(jié)點(diǎn):

[zk: ZookeeperA:21810(CONNECTED) 0] ls /

[zookeeper]

[zk: ZookeeperA:21810(CONNECTED) 1]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末醉旦,一起剝皮案震驚了整個(gè)濱河市饶米,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌车胡,老刑警劉巖檬输,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異匈棘,居然都是意外死亡丧慈,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門主卫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逃默,“玉大人,你說我怎么就攤上這事簇搅⊥暧颍” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵瘩将,是天一觀的道長吟税。 經(jīng)常有香客問我,道長姿现,這世上最難降的妖魔是什么肠仪? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮备典,結(jié)果婚禮上异旧,老公的妹妹穿的比我還像新娘。我一直安慰自己提佣,他們只是感情好吮蛹,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著镐依,像睡著了一般匹涮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上槐壳,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天,我揣著相機(jī)與錄音喜每,去河邊找鬼务唐。 笑死,一個(gè)胖子當(dāng)著我的面吹牛带兜,可吹牛的內(nèi)容都是我干的枫笛。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼刚照,長吁一口氣:“原來是場噩夢啊……” “哼刑巧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤啊楚,失蹤者是張志新(化名)和其女友劉穎吠冤,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恭理,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拯辙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了颜价。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涯保。...
    茶點(diǎn)故事閱讀 38,059評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖周伦,靈堂內(nèi)的尸體忽然破棺而出夕春,到底是詐尸還是另有隱情,我是刑警寧澤专挪,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布及志,位于F島的核電站,受9級特大地震影響狈蚤,放射性物質(zhì)發(fā)生泄漏困肩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一脆侮、第九天 我趴在偏房一處隱蔽的房頂上張望锌畸。 院中可真熱鬧,春花似錦靖避、人聲如沸潭枣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盆犁。三九已至,卻和暖如春篡九,著一層夾襖步出監(jiān)牢的瞬間谐岁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工榛臼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留伊佃,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓沛善,卻偏偏與公主長得像航揉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子金刁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評論 2 345

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