天天看點

ZooKeeper做獨立伺服器運作(上)ZooKeeper做獨立伺服器運作(上) 作者:chszs,轉載需注明。部落格首頁:http://blog.csdn.net/chszs 一、ZooKeeper安裝及配置二、ZooKeeper做獨立伺服器運作三、ZooKeeper用戶端連接配接

版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/24879429

ZooKeeper做獨立伺服器運作(上)

作者:chszs,轉載需注明。部落格首頁: http://blog.csdn.net/chszs

一、ZooKeeper安裝及配置

版本:ZooKeeper v3.4.6穩定版

要設定ZooKeeper以單獨伺服器的模式運作是非常直接的。伺服器包含在單個的JAR檔案内,是以安裝就隻需建立一個配置檔案。

一旦下載下傳了ZooKeeper穩定版,那麼解壓它,并進入ZooKeeper的根目錄。

$ wgethttp://mirror.bit.edu.cn/apache/zookeeper/stable/zookeeper-3.4.6.tar.gz
$ mvzookeeper-3.4.6 zookeeper           

要啟動ZooKeeper,還需要一個配置檔案,可以建立conf/zoo.cfg配置檔案,内容如下:

tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181           

zoo.cfg是配置檔案的預設名字。下面我們說說配置檔案的各項含義。

tickTime:ZooKeeper使用的基本時間單元(毫秒為機關)。它用于做心跳和最小的會話逾時機制。

dataDir:存儲内容資料庫快照的目錄,除非另行指定,否則更新的事務處理日志也會記錄到資料庫。

clientPort:用戶端連接配接監聽的端口

二、ZooKeeper做獨立伺服器運作

建立了配置檔案後,就可以啟動ZooKeeper了。

$bin/zkServer.sh start
JMXenabled by default
Usingconfig: /home/chuser/zookeeper/bin/../conf/zoo.cfg
Startingzookeeper ... STARTED           

ZooKeeper使用Log4J記錄日志消息,你可以從控制台或日志輸出檔案來檢視日志,具體取決于Log4J的配置。

三、ZooKeeper用戶端連接配接

用戶端連接配接到ZooKeeper

一旦ZooKeeper運作了,要連接配接到ZooKeeper,你有幾個選擇:

1)使用Java

$bin/zkCli.sh -server 127.0.0.1:2181
Connecting to 127.0.0.1:2181
2014-05-02 07:39:20,388 [myid:] - INFO  [main:Environment@100] - Clientenvironment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
2014-05-02 07:39:20,394 [myid:] - INFO  [main:Environment@100] - Clientenvironment:host.name=10.0.0.13
2014-05-02 07:39:20,394 [myid:] - INFO  [main:Environment@100] - Clientenvironment:java.version=1.7.0_51
2014-05-02 07:39:20,398 [myid:] - INFO  [main:Environment@100] - Clientenvironment:java.vendor=Oracle Corporation
2014-05-02 07:39:20,399 [myid:] - INFO  [main:Environment@100] - Clientenvironment:java.home=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.51.x86_64/jre
2014-05-02 07:39:20,399 [myid:] - INFO  [main:Environment@100] - Clientenvironment:java.class.path=/home/chuser/zookeeper/bin/../build/classes:/home/chuser/zookeeper/bin/../build/lib/*.jar:/home/chuser/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/home/chuser/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/home/chuser/zookeeper/bin/../lib/netty-3.7.0.Final.jar:/home/chuser/zookeeper/bin/../lib/log4j-1.2.16.jar:/home/chuser/zookeeper/bin/../lib/jline-0.9.94.jar:/home/chuser/zookeeper/bin/../zookeeper-3.4.6.jar:/home/chuser/zookeeper/bin/../src/java/lib/*.jar:/home/chuser/zookeeper/bin/../conf:
2014-05-02 07:39:20,399 [myid:] - INFO  [main:Environment@100] - Clientenvironment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2014-05-02 07:39:20,399 [myid:] - INFO  [main:Environment@100] - Clientenvironment:java.io.tmpdir=/tmp
2014-05-02 07:39:20,400 [myid:] - INFO  [main:Environment@100] - Clientenvironment:java.compiler=<NA>
2014-05-02 07:39:20,400 [myid:] - INFO  [main:Environment@100] - Clientenvironment:os.name=Linux
2014-05-02 07:39:20,400 [myid:] - INFO  [main:Environment@100] - Clientenvironment:os.arch=amd64
2014-05-02 07:39:20,400 [myid:] - INFO  [main:Environment@100] - Clientenvironment:os.version=2.6.32-431.3.1.el6.x86_64
2014-05-02 07:39:20,400 [myid:] - INFO  [main:Environment@100] - Clientenvironment:user.name=chuser
2014-05-02 07:39:20,401 [myid:] - INFO  [main:Environment@100] - Clientenvironment:user.home=/home/chuser
2014-05-02 07:39:20,401 [myid:] - INFO  [main:Environment@100] - Clientenvironment:user.dir=/home/chuser/zookeeper
2014-05-02 07:39:20,403 [myid:] - INFO  [main:ZooKeeper@438] - Initiating clientconnection, connectString=127.0.0.1:2181 sessionTimeout=30000watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@748197b2
Welcome to ZooKeeper!
2014-05-02 07:39:20,448 [myid:] - INFO [main-SendThread(127.0.0.1:2181):ClientCnxn$SendThread@975] - Openingsocket connection to server 127.0.0.1/127.0.0.1:2181. Will not attempt toauthenticate using SASL (unknown error)
JLine support is enabled
2014-05-02 07:39:20,460 [myid:] - INFO [main-SendThread(127.0.0.1:2181):ClientCnxn$SendThread@852] - Socketconnection established to 127.0.0.1/127.0.0.1:2181, initiating session
2014-05-02 07:39:20,491 [myid:] - INFO [main-SendThread(127.0.0.1:2181):ClientCnxn$SendThread@1235] - Sessionestablishment complete on server 127.0.0.1/127.0.0.1:2181, sessionid =0x145bbdc9b460001, negotiated timeout = 30000
 
WATCHER::
 
WatchedEvent state:SyncConnected type:Nonepath:null
[zk: 127.0.0.1:2181(CONNECTED) 0]           

2)使用C語言

在ZooKeeper的源碼src/c子目錄通過運作make cli_mt或make cli_st,編譯多線程用戶端cli_mt或單線程用戶端cli_st,再運作用戶端:

LD_LIBRARY_PATH=. cli_mt 127.0.0.1:2181           

LD_LIBRARY_PATH=. cli_st 127.0.0.1:2181