CentOS 6.5下ZooKeeper3.4.6叢集環境部署及單機部署詳解

WSH_AI發表於2018-04-10

【系統】CentOS 6.5

叢集部署

【軟體】準備好jdk環境,此次我們的環境是open_jdk1.8.0_101
    zookeeper-3.4.6.tar.gz
【步驟】
1. 準備條件
如果有內部dns或者外網有域名,則直接使用域名
如果沒有需要修改/etc/hosts檔案,或者直接使用IP

叢集規劃

主機型別 IP地址  域名
zookeeper1 192.168.1.1zookeeper1.chinasoft.com
zookeeper2 192.168.1.2zookeeper2.chinasoft.com
zookeeper3 192.168.1.3zookeeper3.chinasoft.com

注意:zookeeper因為有主節點和從節點的關係,所以部署的叢集臺數最好為奇數個,否則可能出現腦裂導致服務異常

2. 安裝
下載地址:
解壓

tar -zxf zookeeper-3.4.6.tar.gz 
cd zookeeper-3.4.6

複製配置檔案,修改完成後分發給其他節點
cd /data/zookeeper-3.4.6/
cp zoo_sample.cfg zoo.cfg

cat zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper-3.4.6/data
dataLogDir=/data/zookeeper-3.4.6/logs
clientPort=2181
server.1=u04rtv01.yaya.corp:2888:3888
server.2=u04rtv02.yaya.corp:2888:3888
server.3=u04rtv03.yaya.corp:2888:3888

3.建立data和Log資料夾
mkdir /data/zookeeper-3.4.6/data
mkdir /data/zookeeper-3.4.6/logs

       
4、在zoo.cfg中的dataDir指定的目錄下,新建myid檔案。 
例如:$ZK_INSTALL/data下,新建myid。在myid檔案中輸入1。表示為server.1。 
如果為snapshot/d_2,則myid檔案中的內容為 2,依此類推。

啟動:在叢集中的每臺主機上執行如下命令
bin/zkServer.sh start

檢視狀態,可以看到其中一臺為主節點,其他兩臺為從節點:
bin/zkServer.sh status

主節點:
./zkServer.sh status
JMX enabled by default
Using config: /data/yunva/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: leader
從屬節點:
./zkServer.sh status
JMX enabled by default
Using config: /data/yunva/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower

停止:
bin/zkServer.sh stop

連線:
bin/zkCli.sh -server zookeeper1:2181 
bin/zkCli.sh -server zookeeper2:2181 
bin/zkCli.sh -server zookeeper3:2181

報錯:
原因就是沒有在dataDir目錄下建立myid檔案並且賦值(如1、2、3分別代表叢集中的server1,server2,server3)

2016-08-22 17:55:16,145 [myid:] - INFO  [main:QuorumPeerConfig@103] - Reading configuration from: /data/yunva/zookeeper-3.4.6/bin/../conf/zoo.cfg
2016-08-22 17:55:16,150 [myid:] - INFO  [main:QuorumPeerConfig@340] - Defaulting to majority quorums
2016-08-22 17:55:16,150 [myid:] - ERROR [main:QuorumPeerMain@85] - Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /data/yunva/zookeeper-3.4.6/bin/../conf/zoo.cfg
        at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:123)
        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: /data/yunva/zookeeper-3.4.6/data/myid file is missing
        at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:350)
        at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:119)
        ... 2 more

Invalid config, exiting abnormally

單機部署——適用於開發測試
tar -zxvf zookeeper-3.4.6.tar.gz 
cd zookeeper-3.4.6/conf
cp zoo_sample.cfg zoo.cfg
建立日誌目錄
mkdir /data/yunva/zookeeper-3.4.6/data
mkdir /data/yunva/zookeeper-3.4.6/logs

配置:conf/zoo.cfg

tickTime=2000 
initLimit=10 
syncLimit=5 
dataDir=/data/yunva/zookeeper-3.4.6/logs
dataLogDir=/data/yunva/zookeeper-3.4.6/logs
clientPort=2181
#自動清除日誌檔案
autopurge.snapRetainCount=20
autopurge.purgeInterval=48

啟動:

bin/zkServer.sh start

連線到Zookeeper:

bin/zkCli.sh -server 127.0.0.1:2181  適用於Java開發

檢視狀態:
bin/zkServer.sh status
JMX enabled by default
Using config: /data/yunva/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: standalone

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31530407/viewspace-2152754/,如需轉載,請註明出處,否則將追究法律責任。

相關文章