Zookeeper的安装和配置十分简单, 既可以配置成单机模式, 也可以配置成集群模式. 下面将进行介绍集群模式的安装配置
由于集群模式下, 各server部署在不同的机器上, 因此各server的conf/zoo.cfg文件可以完全一样.
zookeeper-3.5.0-alpha.tar.gz
一、安装需求
安装java 1.6及hadoop 0.20.x
二、安装zookeeper
1、下载zookeeper
zookeeper-3.5.0-alpha.tar.gz
其他版本下载地址(最好使用stable版本):http://zookeeper.apache.org/releases.html
2、解压
tar -zxvfzookeeper-3.5.0-alpha.tar.gz
将解压后的zookeeper-3.4.3文件放在系统的/home/hdtest /中。
[root@master soft]# cp zookeeper-3.5.0-alpha/home/hdtest/zoo2/
修改zoo2目录的所属用户组和权限
[root@master hdtest]# chown hdtest.hdtest zoo2/ -R
3、将zoo2/conf目录下的zoo_sample.cfg文件拷贝一份,命名为为“zoo.cfg”
切换到hdtest用户进入conf配置目录中
[hdtest@master conf]$ pwd
/home/hdtest/zoo2/conf
[hdtest@master conf]$ cp zoo_sample.cfg zoo.cfg
4、修改zoo.cfg配置文件
[hdtest@master conf]$ vi zoo.cfg
clientPort=2188
dataDir=/home/hdtest/zoo2/zookeeper-data
syncLimit=5
initLimit=10
tickTime=2000
server.1=192.168.200.2:2888:3888
server.2=192.168.200.3:2888:3888
server.3=192.168.200.4:2888:3888
5、创建dataDir参数指定的目录
(这里指的是“ /home/hdtest/zoo2/zookeeper-data”),并在目录下创建文件,命名为“myid”。
6、编辑“myid”文件,并在对应的IP的机器上输入对应的编号。如在192.168.200.2上,“myid”文件内容就是1。还有其他服务器,比如地址为192.168.200.3,则在 myid文件的内容就是2。
[hdtest@master zookeeper-data]$ cat myid
1
[hdtest@slave1 zookeeper-data]$ cat myid
2
至此,如果是多服务器配置,就需要将zoo2目录拷贝到其他服务器,然后按照上述的方法修改myid。
7、在主节点上使用hdtest用户编辑配置文件文件中设置PATH
修改profile文件:
[hdtest@master ~]$ cat .bash_profile
export ZOOKEEPER_HOME=/home/hdtest/zoo2/
export PATH=$PATH:$HADOOP_HOME/bin/:$ZOOKEEPER_HOME/bin
保存退出后
[hdtest@master ~]$ source .bash_profile
安装完毕
三、启动并测试zookeeper
1、在所有服务器中执行: zkServer.sh start
2、输入jps命令查看进程:
[hdtest@master ~]$ jps
16404 QuorumPeerMain
14932 JournalNode
15013 NameNode
15345 ResourceManager
2378 Jps
其中,QuorumPeerMain是zookeeper进程,启动正常。
3、查看状态:zookeeper-3.4.3/bin/zkServer.sh status
[hdtest@master ~]$ zkServer.sh status
JMX enabled by default
Using config: /home/hdtest/zoo2/bin/../conf/zoo.cfg
Client port found: 2188
Mode: follower
4、启动客户端脚本:
[hdtest@master ~]$ zkCli.sh -server master:2188
WatchedEvent state:SyncConnected type:None path:null
[zk: zookeeper:2181(CONNECTED) 0]
[zk: zookeeper:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
connect host:port
get path [watch]
ls path [watch]
set path data [version]
rmr path
delquota [-n|-b] path
quit
printwatches on|off
create [-s] [-e] path dataacl
stat path [watch]
close
ls2 path [watch]
history
listquota path
setAcl path acl
getAcl path
sync path
[zk: master:2188(CONNECTING) 0]
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: master:2188(CONNECTED) 0] ls /
[zookeeper]
[zk: master:2188(CONNECTED) 1] ls /zookeeper
[config, quota]
[zk: master:2188(CONNECTED) 2]
5、停止zookeeper进程: zkServer.sh stop