zookeeper学习笔记:zookeeper安装配置
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 系统。当然它只用来存储小数据内容,如配置信息。
推荐zookeeper安装配置教程:国内首部:Zookeeper从入门到精通(开发详解,案例实战,Web界面监控)
zookeeper安装配置学习地址:http://www.ibeifeng.com/goods-380.html