Zookeeper的安装和配置十分简单, 既可以配置成单机模式, 也可以配置成集群模式. 下面将进行介绍集群模式的安装配置

由于集群模式下, server部署在不同的机器上, 因此各serverconf/zoo.cfg文件可以完全一样.

 

zookeeper-3.5.0-alpha.tar.gz

 

一、安装需求

安装java 1.6hadoop 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

 

其中,QuorumPeerMainzookeeper进程,启动正常。

 

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