zookeeper初步
来源:互联网 发布:公司域名备案流程 编辑:程序博客网 时间:2024/06/07 03:17
1.概述
zookeeper是一个分布式协调系统,主要目的是为了减轻构建健壮的分布式系统的负担。应用场景有领导选举,崩溃检测,分布式队列和锁等。
zookeeper被应用在hbase/solr/kafka/dubbo等系统上。而且本人发现越来越多的分布式系统都开始采用zookeeper作为底层基础设施。
2.环境
Win7 64bit
JDK 1.7.0_72
zookeeper 3.4.6
3.起步试验
3.1 下载
http://zookeeper.apache.org/releases.html
本文写作时zookeeper最新版是3.4.6
3.2 运行服务端(单机模式)
- cd conf
- cp zoo_sample.cfg zoo.cfg
修改zoo.cfg
- dataDir=D:/opensource/zookeeper/zookeeper-3.4.6/data
然后运行以下命令即启动服务端
- cd ../bin
- zkServer
3.3 运行客户端
- zkCli
-
- [zk: localhost:2181(CONNECTED) 1] create /workers "abc"
- Created /workers
- [zk: localhost:2181(CONNECTED) 2] ls /
- [workers, zookeeper]
- [zk: localhost:2181(CONNECTED) 3] create /workers/1 "abc1"
- Created /workers/1
- [zk: localhost:2181(CONNECTED) 4] quit
以上命令,创建了2个节点,分别是/workers 和/workers/1
4.ZooInspector
contrib目录下有一个简单的图形化界面,用来查看zookeeper节点。
- cd contrib\ZooInspector
- java -cp zookeeper-3.4.6-ZooInspector.jar;lib/*;../../zookeeper-3.4.6.jar;../../lib/* org.apache.zookeeper.inspector.ZooInspector
界面效果如下图,可以看到我们之前创建的2个节点以及节点内容。简单用用还是不错的。
5.Quorums模式(集群模式)
试了一下,windows下要用cygwin才能模拟。不然会出错。蛮坑爹的,对windows支持不好,不过也可以理解。
本次试验我们准备启动3个zookeeper服务。
5.1 准备3个服务各自的目录和myid文件
- mkdir z1
- mkdir z1\data
- mkdir z2
- mkdir z2\data
- mkdir z3
- mkdir z3\data
- echo 1 > z1/data/myid
- echo 2 > z2/data/myid
- echo 3 > z3/data/myid
执行完以后记得手工打开myid文件看一下,1后面会多一个空格,记得去掉。另外两个2,3也一样,把空格去掉。
5.2 配置cfg
z1.cfg
- tickTime=2000
- initLimit=10
- syncLimit=5
- dataDir=D:/opensource/zookeeper/zookeeper-3.4.6/z1/data
- clientPort=2181
- server.1=127.0.0.1:2222:2223
- server.2=127.0.0.1:3333:3334
- server.3=127.0.0.1:4444:4445
z2.cfg(和z1.cfg相同地方已省略,只列出不同点)
- dataDir=D:/opensource/zookeeper/zookeeper-3.4.6/z2/data
- clientPort=2182
z3.cfg
- dataDir=D:/opensource/zookeeper/zookeeper-3.4.6/z3/data
- clientPort=2183
注意上面的dataDir要用绝对路径,不然会报错(对windows支持不好,没办法)
5.3 启动服务端
这里要开3个cygwin
- cd /cygdrive/d/opensource/zookeeper/zookeeper-3.4.6/
- ./bin/zkServer.sh start-foreground ./z1/z1.cfg
- ./bin/zkServer.sh start-foreground ./z2/z2.cfg
- ./bin/zkServer.sh start-foreground ./z3/z3.cfg
5.4 启动客户端
这里不要用cygwin,用dos命令即可。用了cygwin会出现输入不了命令的卡死问题。
- zkCli -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
- cd conf
- cp zoo_sample.cfg zoo.cfg
- dataDir=D:/opensource/zookeeper/zookeeper-3.4.6/data
- cd ../bin
- zkServer
- zkCli
- [zk: localhost:2181(CONNECTED) 1] create /workers "abc"
- Created /workers
- [zk: localhost:2181(CONNECTED) 2] ls /
- [workers, zookeeper]
- [zk: localhost:2181(CONNECTED) 3] create /workers/1 "abc1"
- Created /workers/1
- [zk: localhost:2181(CONNECTED) 4] quit
- cd contrib\ZooInspector
- java -cp zookeeper-3.4.6-ZooInspector.jar;lib/*;../../zookeeper-3.4.6.jar;../../lib/* org.apache.zookeeper.inspector.ZooInspector
- mkdir z1
- mkdir z1\data
- mkdir z2
- mkdir z2\data
- mkdir z3
- mkdir z3\data
- echo 1 > z1/data/myid
- echo 2 > z2/data/myid
- echo 3 > z3/data/myid
- tickTime=2000
- initLimit=10
- syncLimit=5
- dataDir=D:/opensource/zookeeper/zookeeper-3.4.6/z1/data
- clientPort=2181
- server.1=127.0.0.1:2222:2223
- server.2=127.0.0.1:3333:3334
- server.3=127.0.0.1:4444:4445
- dataDir=D:/opensource/zookeeper/zookeeper-3.4.6/z2/data
- clientPort=2182
- dataDir=D:/opensource/zookeeper/zookeeper-3.4.6/z3/data
- clientPort=2183
- cd /cygdrive/d/opensource/zookeeper/zookeeper-3.4.6/
- ./bin/zkServer.sh start-foreground ./z1/z1.cfg
- ./bin/zkServer.sh start-foreground ./z2/z2.cfg
- ./bin/zkServer.sh start-foreground ./z3/z3.cfg
- zkCli -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
0 0
- zookeeper初步
- Zookeeper初步认识
- Zookeeper的初步认识
- Zookeeper初步了解
- Zookeeper那些事之初步了解zookeeper知识
- zookeeper的java客户端初步使用
- zookeeper客户端执行回调方式初步探究
- zookeeper
- zookeeper
- zookeeper
- zookeeper
- zookeeper
- zookeeper
- zookeeper
- zookeeper
- ZooKeeper
- zookeeper
- zookeeper
- 浅谈 EventBus
- vs using不出MySql.Data.MySqlClient;的解决
- 图灵机器人程序编写得具体步骤,适合刚学习了网络基础的人
- IOS使状态栏的颜色变成白色
- I/dalvikvm: Total arena pages for JIT: 是什么意思?
- zookeeper初步
- 使用Jenkins+xcodebuild搭建iOS的持续集成系统
- Map的clear()方法
- 【Leetcode】Rising Temperature
- 转义字符含义整理
- mapreduce生成HFile通过bulkload入hbase库问题
- canvas之二:绘制三角形
- 纯HTML的静态网页中添加一段统计网页访问量的JAVA Script代码
- UI基础_hitTest扩大响应范围