一、單機模式的配置
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 |
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 |
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 |
可以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 |