linux下zookeeper集羣安裝配置(3.5.1版)

一、單機模式的配置

1.1、下載地址:  http://www.apache.org/dyn/closer.cgi/zookeeper/

       他會根據你的ip來推薦一個具體的站點:  我這邊推薦的是 http://mirrors.noc.im/apache/zookeeper/

1.2、 下載後上傳到服務器的指定目錄下:

        我這邊是在app的目錄下新建的zookeeper,下載的zookeeper-3.5.1-alpha.tar.gz

1.3、解壓:tar -zxvf zookeeper-3.5.1.tar.gz 

1.4、配置文件:在conf目錄下 cp zoo_sample.cfg  zoo.cfg,創建配置文件zoo.cfg。 修改dir   log的配置在這個目錄下的log4j.properties

tickTime=2000
  dataDir=/app/zookeeper/zooData/tmpData  數據的持久化到這個目錄下,以及集羣的配置也是需要的
  clientPort=2181
initLimit=10
    tickTime=2000
1.5配置環境變量:爲了今後操作方便,我們需要對Zookeeper的環境變量進行配置,方法如下在/etc/profile文件中加入如下內容:


   export ZOOKEEPER_HOME=/app/zookeeper/zookeeper-3.5.1-alpha/bin
    export PATH=.:HADOOP H OME/bin: ZOOKEEPER_HOME/bin:JAVA H OME/bin: PATH
1.6啓動ZooKeeper的Server:zkServer.sh start;關閉ZooKeeper的Server:zkServer.sh stop

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
  [zk: localhost:2181(CONNECTED) 0]   

最後顯示connected表示OK了,  就可以在裏面敲命令了 比如  ls /  查看根目錄下的文件結構


二 集羣模式配置:

  集羣下的:成員一般建議是2N+1的形式,1爲leader,N個再跑,N個備份,後續在探討

2.1  在之前的單機模式下修改:

   選取了三臺服務器來配置  ,主要是下面加入的server的列表,一定要注意server的序號,這個序號要和dataDir的

clientPort=2181
dataDir=/app/was7/zookeeper/server1/data/zookeeper
syncLimit=5
initLimit=10
tickTime=2000
server.1=10.182.211.250:2888:3888
server.2=10.182.161.214:2888:3888
server.3=10.182.243.110:2888:3888
    2.2 這臺服務器是250的,現在需要在dataDir的目錄下新建一個myid的文件 ,在datadir的目錄下輸入: touch myid  創建文件

   可以vi myid 打開文件輸入 1 然後點esc鍵,再輸入:wq  來退出,也可以  touch myid   然後echo >> 1 myid  

   這是要保證你的server後跟的後綴 1 2 3 對應的ip要和對應的myid裏面的數字對應,

   比如: 250的是server1  所以他下面的myid 裏面的內容是 1   如果是214的服務器那就是 2 就這樣

  

 2.3 

   配置其他兩臺服務器

   注意一點: 10.182.243.110:2888:3888   這個配置的時候後面一定要沒有空格等字符,否則會啓動報錯


 2.4 分別啓動服務,第一臺啓動的時候會報錯,因爲他找不到集羣下的服務,等到所有的都起來了,就不報錯了


    然後啓動後,conf的配置會發生變化:

   

   
      他把集羣的配置單獨放到了一個文件中,這可能是3.5以後的吧,但是隻是配置完生效後變成這樣子的,配置還是在zoo.cnf中寫的



三 遇到的問題:

 Invalid config, exiting abnormally
    org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Address unresolved: 10.182.243.110:3888  
        at org.apache.zookeeper.server.quorum.QuorumPeer$QuorumServer.<init>(QuorumPeer.java:221)
        at org.apache.zookeeper.server.quorum.flexible.QuorumMaj.<init>(QuorumMaj.java:89)
        at org.apache.zookeeper.server.quorum.QuorumPeerConfig.createQuorumVerifier(QuorumPeerConfig.java:498)
        at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseDynamicConfig(QuorumPeerConfig.java:531)
        at org.apache.zookeeper.server.quorum.QuorumPeerConfig.setupQuorumPeerConfig(QuorumPeerConfig.java:504)
        at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:157)
        at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:110)
        at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:79)


這個就是當時copy的時候10.182.243.110:3888  後面帶了空格,所以他找不到這個端口,so  一定要注意linux下的空格


只要把空格去掉就OK了





   export ZOOKEEPER_HOME=/app/zookeeper/zookeeper-3.5.1-alpha/bin
    export PATH=.:HADOOP H OME/bin: ZOOKEEPER_HOME/bin:JAVA H OME/bin: PATH

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章