1, 安裝準備node
1.1 下載http://mirror.bjtu.edu.cn/apache/zookeeper/zookeeper-3.3.3/zookeeper-3.3.3.tar.gzlinux
1.2 安裝jdk : 個人是jdk-1.6.0_14-fcsshell
1.3 系統: linux :centos-5.4apache
1.4 hadoop安裝配置:vim
192.168.201.128 namenodecentos
192.168.201.131 datanode服務器
192.168.201.132 datanode函數
2,操做步驟oop
2.1 複製以上文件到/usr/下spa
2.2 解壓後獲得目錄: /usr/zookeeper-3.3.3
2.3 進入zookeeper-3.3.3目錄下,把conf目錄下的zoo_sample.cfg 複製成zoo.cfg文件
2.4 打開zoo.cfg並修改和添加配置項目,以下:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the port at which the clients will connect
clientPort=2181
# the directory where the snapshot is stored.
#dataDir=/export/crawlspace/mahadev/zookeeper/server1/data
dataDir=/usr/zookeeper-3.3.3/data
dataLogDir=/usr/zookeeper-3.3.3/log
server.1=192.168.201.128:2888:3888
server.2=192.168.201.131:2888:3888
server.3=192.168.201.132:2888:3888
2.5 新建兩個目錄
mkdir /usr/zookeeper-3.3.3/{data,log}
2.6 在/usr/zookeeper-3.3.3/data目錄下建立一個文件:myid
2.7 分別在myid上按照配置文件的server.<id>中id的數值,在不一樣機器上的該文件中填寫相應過的值
192.168.201.128 的myid內容爲1
192.168.201.131 的爲2
192.168.201.132 的爲3
2.8 建立一個環境變量ZOOKEEPER並把該環境變量添加到系統路徑:
vim /etc/profile
在export PATH語句前添加兩行:
ZOOKEEPER=/usr/zookeeper-3.3.3/
PATH=$PATH:$ZOOKEEPER/bin
並執行 source /etc/profile
2.9 安裝完成
3,啓動
3.1 在三臺機器上分別執行shell腳本,因爲已經把可執行路徑添加到環境變量中了,因此能夠直接執行:
zkServer.sh start
3.2 在其中一臺機器上執行客戶端腳本,來查看這臺服務器是否啓動:
zkCli.sh -server 192.168.201.128:2181
4,查看狀態
4.1 執行jps查看狀態
jps
4.2 查看zookeeper集羣是否啓動
zkServer.sh status
[root@master ~]# zkServer.sh status
JMX enabled by default
Using config: /usr/zookeeper-3.3.3/bin/../conf/zoo.cfg
Mode: follower
leader的顯示是:
JMX enabled by default
Using config: /usr/zookeeper-3.3.3/bin/../conf/zoo.cfg
Mode: leader
4.3 查看zookeeper的啓動狀態
echo ruok | nc 192.168.201.128 2181
控制檯輸出: imok
5, 基本命令使用
注意:(處理客戶端命令的函數是processZKCmd)
經過zkCli.sh -server 命令能夠鏈接到其中一臺server中,而後就能夠經過交互式命令來控制zk了,簡單講解一下create命令的用法:
鏈接上zookeeper集羣后,能夠向其中輸入命令:
#建立一個znode: /t 和數據tdata,其結點是EPHEMERAL類型的,
#意味着,客戶端斷開後其結點就會被刪除
[zk: 192.168.201.128(CONNECTED) 25] create -e /t tdata
Created /t
[zk: 192.168.201.128(CONNECTED) 26] ls / #查看/目錄下目錄
[t, zookeeper]
[zk: 192.168.201.128(CONNECTED) 27] ls /t #查看/t目錄下的內容
[]
[zk: 192.168.201.128(CONNECTED) 28] get /t #獲取並查看/t目錄寫的數據
tdata
cZxid = 0x100000005
ctime = Sun Apr 22 17:58:05 CST 2012
mZxid = 0x100000005
mtime = Sun Apr 22 17:58:05 CST 2012
pZxid = 0x100000005
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x136d781d8750002
dataLength = 5
numChildren = 0
[zk: 192.168.201.128(CONNECTED) 29]
6,集羣管理使用
小結