运行 ZooKeeper

鉴客 发布于 2010/08/05 15:48
阅读 7K+
收藏 8

ZooKeeper 是性能分布式应用的协调系统。提供如:命名、配置管理、同步、组服务等公共服务。具体看官方详细说明:http://hadoop.apache.org/zookeeper

这篇先记录运行 zookeeper 服务器或服务器组。不介绍用在那种场景(它是 hadoop 项目提炼出来的,hadoop 也在用它)。

下载 zookeeper-3.3.1.tar.gz 解压到如 D:\zookeeper-3.3.1

进到 D:\zookeeper-3.3.1 目录,改下 conf/zoo.cfg 文件,内容如:

   1. tickTime=2000 
   2. initLimit=10 
   3. syncLimit=5 
   4. dataDir=D:/data/zookeeper/alone 
   5. clientPort=2181 

tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:/data/zookeeper/alone
clientPort=2181

运行(单机模式),服务器。

   1. sh bin/zkServer.sh start 

sh bin/zkServer.sh start

客户端:

   1. sh bin/zkCli.sh 

sh bin/zkCli.sh

回车,可以看到: [zk: localhost:2181(CONNECTED) 0] 提示

可以输入 ls /
它是列出 / 目录内容,如同文件系统。输入 help 可以看到可用的命令:

    [zk: localhost:2181(CONNECTED) 2] 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
    ls2 path [watch]
    history
    listquota path
    setAcl path acl
    getAcl path
    sync path
    redo cmdno
    addauth scheme auth
    delete path [version]
    setquota -n|-b val path

写数据:

    [zk: localhost:2181(CONNECTED) 3] create /my_data "data.chenlb.com"
    Created /my_data
    [zk: localhost:2181(CONNECTED) 4] get /my_data
    "data.chenlb.com"
    cZxid = 0x2
    ctime = Thu Jul 22 20:57:23 CST 2010
    mZxid = 0x2
    mtime = Thu Jul 22 20:57:23 CST 2010
    pZxid = 0x2
    cversion = 0
    dataVersion = 0
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 17
    numChildren = 0

用 set 命令可以改数据。

运行多机模式:
在 conf 目录下创建文件如 zoo1.cfg,zoo2.cfg,zoo3.cfg。
zoo1.cfg 内容如下:

   1. tickTime=2000 
   2. initLimit=10 
   3. syncLimit=5 
   4. dataDir=D:/data/zookeeper/d_1 
   5. clientPort=2181 
   6. server.1=localhost:2887:3887 
   7. server.2=localhost:2888:3888 
   8. server.3=localhost:2889:3889 

tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:/data/zookeeper/d_1
clientPort=2181
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889

zoo2.cfg 和 zoo3.cfg 文件内容基本一样,只是把 dataDir 和 clientPort 对应改下。这三个 zookeeper 都在同一机器所以要改,如果在三个独立的机器上,只要加:

   1. server.1=ip1:2888:3888 
   2. server.2=ip2:2888:3888 
   3. server.3=ip3:2888:3888 

server.1=ip1:2888:3888
server.2=ip2:2888:3888
server.3=ip3:2888:3888

开三个终端分别运行:

   1. sh bin/zkServer.sh start zoo1.cfg 
   2. sh bin/zkServer.sh start zoo2.cfg 
   3. sh bin/zkServer.sh start zoo3.cfg 

sh bin/zkServer.sh start zoo1.cfg
sh bin/zkServer.sh start zoo2.cfg
sh bin/zkServer.sh start zoo3.cfg

提示:运行第一个服务时,会有报错输出,没事的,接着运行剩下的。就不会报错了。

用三个客户端终端连接分别连接它们:

   1. sh bin\zkCli.sh -server localhost:2181 
   2. sh bin\zkCli.sh -server localhost:2182 
   3. sh bin\zkCli.sh -server localhost:2183 

sh bin\zkCli.sh -server localhost:2181
sh bin\zkCli.sh -server localhost:2182
sh bin\zkCli.sh -server localhost:2183

可以在第一客户端创建内容,第二个客户端查看,第三个客户端修改,再第一客户端,可以看到改变后的内容。

这样看起来 zookeeper 有点像分布式 key/value 系统。当然它只用来存储小数据内容,如配置信息。

加载中
0
张学有
张学有
Zookeeper+Spring跨机房容灾系统以及灰度发布
课程学习地址:http://www.xuetuwuyou.com/course/20


一、课程使用到的软件及版本: centos系统,zookeeper 3.4.6,Spring4


二、课程目标:
1、熟练开发各种分布式应用
2、掌控zookeeper java客户端开发
3、熟练运用curator的各种特性


三、课程目录


 第1节、zookeepeer集群简介,跨机房容灾系统架构设计
 第2节、zookeeper的java客户端与spring整合(上)
 第3节、zookeeper的java客户端与spring整合(下)
 第4节、zookeeper-3watcher使用(上)
 第5节、zookeeper-3watcher使用(下)
 第6节、Curator介绍与使用
 第7节、zookeeper跨机房容灾系统设计两种方案详细讲解
 第8节、zookeeper跨机房容灾具体实现
 第9节、zookeeper跨机房容灾系统的调试,以及分布式锁的简单介绍
 第10节、zookeeper分布式锁(上)
 第11节、zookeeper分布式锁(下)
 第12节、zookeeper实现灰度指定服务器发布
 第13节、课程总结以及未来展望

返回顶部
顶部