CentOS下ZooKeeper單機模式、叢集模式安裝

來源:互聯網
上載者:User

標籤:

本文環境如下:
作業系統:CentOS 6 32位
ZooKeeper版本:3.4.8

0. 環境需求

Zookeeper需要JDK1.6以上版本的Java環境
可以參考:
CentOS 6使用rpm方式安裝JDK8

1. 下載軟體包

到ZooKeeper官網上http://zookeeper.apache.org/下載軟體包,例如:

wget "http://apache.opencas.org/zookeeper/stable/zookeeper-3.4.8.tar.gz"tar -xzvf zookeeper-3.4.8.tar.gzmv zookeeper-3.4.8 /opt
2. 單機模式2.1 修改設定檔
cd /opt/zookeeper-3.4.8/conf/cp zoo_sample.cfg zoo.cfgvi zoo.cfg

Zookeeper提供了一份預設的設定檔,複製為zoo.cfg開啟後,我們需要修改資料存放的路徑:

dataDir=/opt/zookeeper-3.4.8/data
2.2 運行Zookeeper
cd /opt/zookeeper-3.4.8/bin/./zkServer.sh start

如果運行無報錯,說明Zookeeper啟動成功了。
為了以後操作方便,我們可以將Zookeeper/bin添加到path

vi /etc/profile

在末尾添加:

ZOOKEEPER_HOME=/opt/zookeeper-3.4.8PATH=$PATH:$ZOOKEEPER_HOME/bin

更新配置:

source /etc/profile
3. 叢集模式

單機模式非常方便,適合開發、測試情境,但是在生產環境中,應該運行一個叢集模式。叢集模式至少應該有3個節點,並且強烈建議是奇數個節點,每個節點應該有相同的設定檔。

3.1 修改設定檔
cd /opt/zookeeper-3.4.8/conf/vi zoo.cfg

開啟後,修改為:

tickTime=2000dataDir=/opt/zookeeper-3.4.8/dataclientPort=2181initLimit=5syncLimit=2server.1=master:2888:3888server.2=slave1:2888:3888server.3=slave2:2888:3888

server後面跟的數字就是該節點的標號,我們需要將這個編號寫入名為myid的檔案。該檔案應該存放在前面配置的dataDir指向的目錄下。
例如上面的slave1節點,對應的data/myid檔案中應該寫入2

3.2 拷貝檔案夾
scp -r /opt/zookeeper-3.4.8 root@slave1:/opt/scp -r /opt/zookeeper-3.4.8 root@slave2:/opt/

拷貝完成後,記得修改對應伺服器的myid檔案。

3.3 啟動服務

需要到每個節點上啟動Zookeeper服務,每個節點啟動後可以用zkServer.sh status查看當前節點的啟動狀態以及是leader節點還是follower節點。

4. 異常分析

作業記錄檔案預設在程式目錄下的zookeeper.out

4.1 無法串連
2016-04-13 05:18:21,531 [myid:1] - WARN  [WorkerSender[myid=1]:QuorumCnxManager@400] - Cannot open channel to 2 at election address slave1/5.2.8.5:3888java.net.ConnectException: Connection refused        at java.net.PlainSocketImpl.socketConnect(Native Method)        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)        at java.net.Socket.connect(Socket.java:589)        at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:381)        at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:354)        at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:452)        at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:433)        at java.lang.Thread.run(Thread.java:745)

出現這個異常,可能是zookeeper節點的防火牆是開啟狀態並且沒有開啟相應連接埠(2888,3888);也可能是有節點未啟動或者掛掉了。

CentOS下ZooKeeper單機模式、叢集模式安裝

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.