本文介紹一下zookeeper-3.9.0源碼下載、編譯及本地啟動。 下載源碼 git clone https://gitee.com/apache/zookeeper.git cd zookeeper git checkout release-3.9.0 git checkout -b relea ...
本文介紹一下zookeeper-3.9.0源碼下載、編譯及本地啟動。
下載源碼
git clone https://gitee.com/apache/zookeeper.git
cd zookeeper
git checkout release-3.9.0
git checkout -b release-3.9.0
源碼編譯
README_packaging.md文件
該文件介紹了編譯zookeeper需要的環境和命令。
編譯環境
- java-1.8.0_102
- maven-3.3.9
maven編譯
mvn clean install -DskipTests
zookeeper-assembly/target/apache-zookeeper-3.9.0-bin.tar.gz
包目錄結構:
/bin
- 可執行文件及腳本/conf
- 配置文件/lib
- zookeeper包及依賴的包/docs
- 文檔
構建C客戶端
To also build the C client, you need to activate the full-build
profile:
mvn clean -Pfull-build
mvn install -Pfull-build -DskipTests
需要在linux平臺編譯,windows平臺會出錯。
java命令啟動zookeeper
發佈包的啟動方式在上一篇文章已經介紹,此處介紹一下使用java命令啟動zookeeper服務。
zookeeper-server/target目錄
進入zookeeper-server/target目錄:
$ ll
drwxr-xr-x 1 xuguofeng 197121 0 Aug 16 00:14 lib/
-rw-r--r-- 1 xuguofeng 197121 1359096 Aug 16 00:14 zookeeper-3.9.0.jar
- lib - 依賴jar
- zookeeper-3.9.0.jar - 包含了zookeeper的類
創建zoo.cfg配置文件
在zookeeper-server/target下創建conf目錄,創建zoo.cfg配置文件:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=data
clientPort=2181
創建logs目錄
啟動zookeeper服務
java \
-Dzookeeper.datadir.autocreate=true \
-Dzookeeper.log.dir=./logs \
-Dzookeeper.log.file=zookeeper.log \
-XX:+HeapDumpOnOutOfMemoryError \
-Xmx1000m -Xms1000m \
-cp zookeeper-3.9.0.jar;./lib/*;./conf \
org.apache.zookeeper.server.quorum.QuorumPeerMain ./conf/zoo.cfg
如果是linux平臺,則使用如下命令:
nohup java \
-Dzookeeper.datadir.autocreate=true \
-Dzookeeper.log.dir=./logs \
-Dzookeeper.log.file=zookeeper.log \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:OnOutOfMemoryError='kill -9 %p' \
-Xmx1000m -Xms1000m \
-Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:./lib \
-cp ./conf:zookeeper-3.9.0.jar \
org.apache.zookeeper.server.quorum.QuorumPeerMain ./conf/zoo.cfg > ./logs/zookeeper.out 2>&1 < /dev/null &
啟動zookeeper客戶端
java \
-Dzookeeper.datadir.autocreate=true \
-Dzookeeper.log.dir=./logs \
-Dzookeeper.log.file=zookeeper.log \
-Dzookeeper.log.threshold=INFO \
-Xmx256m -Xms256m \
-cp zookeeper-3.9.0.jar;./lib/*;./conf \
org.apache.zookeeper.ZooKeeperMain
在idea中啟動
參數配置
配置說明
在工作目錄下創建tmp/conf目錄:
-
把conf/logback.xml拷貝到tmp/conf目錄下
-
在tmp/conf目錄下創建zoo.cfg配置文件
tickTime=2000 initLimit=10 syncLimit=5 dataDir=./tmp/data clientPort=2181
VM Option:
-Dzookeeper.datadir.autocreate=true -Dzookeeper.log.dir=./tmp/logs -Dzookeeper.log.file=zookeeper.log -Xmx1000m -Xms1000m
Program Arguments:
./tmp/conf/zoo.cfg
把./tmp/conf目錄添加到classpath中。
類找不到問題
如果直接啟動,可能出現類找不到的問題,在pom.xml中找到對應的依賴,將provided註釋掉即可。