初识ZOOKEEPER

Hadoop下面的子项目ZooKeeper是一个用于协调分布式程序的服务。我们可以利用它来保证各个机器之间的数据同步。

单机环境运行ZOOKEEPER

1 下载ZooKeeper:http://labs.xiaonei.com/apache-mirror/hadoop/zookeeper/zookeeper-3.2.2/zookeeper-3.2.2.tar.gz

2 解压。

3 在conf目录下创建一个配置文件zoo.cfg,然后指定其中的内容为:

tickTime=2000
dataDir=/home/admin/aaron/data
clientPort=2181
4 创建/home/admin/aaron/data文件夹,用于存放ZooKeeper的同步数据。
5 启动ZooKeeper的Server: sh bin/zkServer.sh start
这样,我们的ZooKeeper的Server就运行起来了。我们将看到这样一些信息:

[admin@hadoop1 zookeeper-3.2.2]$ sh bin/zkServer.sh start 
JMX enabled by default 
Using config: /home/admin/aaron/zookeeper-3.2.2/bin/../conf/zoo.cfg 
Starting zookeeper ... 
STARTED

如果想要关闭,输入:

[admin@hadoop1 zookeeper-3.2.2]$ sh bin/zkServer.sh stop 
JMX enabled by default 
Using config: /home/admin/aaron/zookeeper-3.2.2/bin/../conf/zoo.cfg 
Stopping zookeeper ... 
STOPPED

多机环境运行ZOOKEEPER

单机环境适合于开发与调试,但是正真应用在生产环境,我们还需要使用可以容错的多机环境。

1 我们在3台机器(hadoop1,hadoop2,hadoop3)上分别下载并解压。

2 在conf目录下创建一个配置文件zoo.cfg,然后指定其中的内容为:

tickTime=2000 
dataDir=/home/admin/aaron/data 
clientPort=2181 
initLimit=5 
syncLimit=2 
server.1=hadoop1:2888:3888 
server.2=hadoop2:2888:3888 
server.3=hadoop3:2888:3888

3 创建/home/admin/aaron/data文件夹(如果之前有数据,请先清空),用于存放ZooKeeper的同步数据。

4 在/home/admin/aaron/data文件夹中创建myid文件,hadoop1机器的内容为:1,hadoop2机器的内容为:2,hadoop3机器的内容为:3

5 分别在3台机器上启动ZooKeeper的Server:sh bin/zkServer.sh start

这样,我们的多机环境的ZooKeeper就启动起来了。现象是和单机一致的。

连接ZOOKEEPER SERVER

ZooKeeper的Server集群启动起来以后,我们就可以利用ZooKeeper的Client连接Server了。

我们在hadoop1机器上连接ZooKeeper集群:sh bin/zkCli.sh -server hadoop1:2181

成功后,出现如下的对话框

[zk: hadoop1:2181(CONNECTED) 0]

我们就可以再这里输入命令了。

显示所有的可以使用的命令:

[zk: hadoop1:2181(CONNECTED) 0] help 
ZooKeeper -server host:port cmd args 
        connect host:port 
        get path [watch] 
        ls path [watch] 
        set path data [version] 
        delquota [-n|-b] path 
        quit 
        printwatches on|off 
        create [-s] [-e] path data acl 
        stat path [watch] 
        close 
        history 
        listquota path 
        setAcl path acl 
        getAcl path 
        sync path 
        redo cmdno 
        addauth scheme auth 
        delete path [version] 
        setquota -n|-b val path

显示当前的数据:

[zk: hadoop1:2181(CONNECTED) 2] ls / 
[zookeeper]

然后,我们添加一个新的数据

[zk: hadoop1:2181(CONNECTED) 4] create /alibaba gpcuster 
Created /alibaba

再查看数据:

[zk: hadoop1:2181(CONNECTED) 5] ls / 
[alibaba, zookeeper]

现在,就多了一个数据节点alibaba。

查看这个节点的值:

[zk: hadoop1:2181(CONNECTED) 6] get /alibaba 
gpcuster 
cZxid = 4294967298 
ctime = Fri Jan 15 13:42:05 CST 2010 
mZxid = 4294967298 
mtime = Fri Jan 15 13:42:05 CST 2010 
pZxid = 4294967298 
cversion = 0 
dataVersion = 0 
aclVersion = 0 
ephemeralOwner = 0 
dataLength = 8 
numChildren = 0

还有其他的命令,比如修改,删除等等。

MORE

我们现在只是搭建起来的Zookeeper的环境,以及通过命令行的方式操作。

接下来的我们会继续看看ZooKeeper是如何工作的,如何通过编程的方式来操作,以及如何在实际的应用中使用ZooKeeper。

 

更多关于ZooKeeper的文章请参考:http://www.cnblogs.com/gpcuster/tag/ZooKeeper/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值