zookeeper安装与伪集群部署

OverView(概述)
http://zookeeper.apache.org/doc/r3.4.6/zookeeperOver.html

Getting Started(开始入门)
http://zookeeper.apache.org/doc/r3.4.6/zookeeperStarted.html

Tutorial(教程)
http://zookeeper.apache.org/doc/r3.4.6/zookeeperTutorial.html

Java Example(Java示例)
http://zookeeper.apache.org/doc/r3.4.6/javaExample.html

Programmer's Guide(开发人员指南)
http://zookeeper.apache.org/doc/r3.4.6/zookeeperProgrammers.html

Recipes and Solutions(技巧及解决方案)
http://zookeeper.apache.org/doc/r3.4.6/recipes.html

3.4.6 API online(在线API速查)

http://zookeeper.apache.org/doc/r3.4.6/api/index.html

另外推荐园友sunddenly的zookeeper系列
http://www.cnblogs.com/sunddenly/category/620563.html

一、下载

http://apache.opencas.org/zookeeper/

或者 http://mirrors.cnnic.cn/apache/zookeeper/下载最新版本

下载解压
解压到3个目录(模拟3zk server):
/soft/zookeeper-1
/soft /zookeeper-2
/soft /zookeeper-3
创建每个目录下conf/zoo.cfg配置文件

/soft/zookeeper-1/conf/zoo.cfg 内容如下:

tickTime=2000

initLimit=10
syncLimit=5
dataDir=/soft /tmp/zk1/data
dataLogDir=/soft/tmp/zk1/log
clientPort=2181
server.1=localhost:2287:3387
server.2=localhost:2288:3388
server.3=localhost:2289:3389

/soft/zookeeper-2/conf/zoo.cfg 内容如下:

tickTime=2000

initLimit=10
syncLimit=5
dataDir=/soft/tmp/zk2/data
dataLogDir=/soft/tmp/zk2/log
clientPort=2182
server.1=localhost:2287:3387
server.2=localhost:2288:3388
server.3=localhost:2289:3389

/soft/zookeeper-3/conf/zoo.cfg 内容如下:

tickTime=2000

initLimit=10
syncLimit=5
dataDir=/soft/tmp/zk3/data
dataLogDir=/soft/tmp/zk3/log
clientPort=2183
server.1=localhost:2287:3387
server.2=localhost:2288:3388
server.3=localhost:2289:3389

注:因为是在一台机器上模拟集群,所以端口不能重复,这里用2181~21832287~2289,以及3387~3389相互错开。另外每个zkinstance,都需要设置独立的数据存储目录、日志存储目录,所以dataDirdataLogDir这二个节点对应的目录,需要手动先创建好。
mkdir /soft/tmp/zk1/data

mkdir/soft/tmp/zk1/log

mkdir/soft/tmp/zk2/data

mkdir/soft/tmp/zk2/log

mkdir/soft/tmp/zk3/data

mkdir/soft/tmp/zk3/log
另外还有一个非常关键的设置,在每个zk server配置文件的dataDir所对应的目录下,必须创建一个名为myid的文件,其中的内容必须与zoo.cfgserver.x 中的x相同,即:
cd /soft/tmp/zk1/data/

vimyid 输入1 保存

cd/soft/tmp/zk2/data/

vimyid 输入2 保存

cd/soft/tmp/zk3/data/

vimyid 输入3 保存


/soft/tmp/zk1/data/myid
中的内容为1,对应server.1中的1
/soft/tmp/zk2/data/myid
中的内容为2,对应server.2中的2
/soft/tmp/zk3/data/myid
中的内容为3,对应server.3中的3

生产环境中,分布式集群部署的步骤与上面基本相同,只不过因为各zk server分布在不同的机器,上述配置文件中的localhost换成各服务器的真实Ip即可。分布在不同的机器后,不存在端口冲突问题,可以让每个服务器的zk均采用相同的端口,这样管理起来比较方便。

 

启动验证

/soft/zookeeper-1/bin/zkServer.sh start

/soft/zookeeper-2/bin/zkServer.sh start

/soft/zookeeper-3/bin/zkServer.sh start

输入jps检查

ps–ef|grep zookeeper 也可以显示所有启动的zookeeper端口

使用客户端连接尝试:

sh /soft/zookeeper-2/bin/zkCli.sh -server localhost:2181

启动成功:

WATCHER::

WatchedEvent state:SyncConnected type:None path:null

[zk: localhost:2181(CONNECTED) 0]

客户端命令:

ls / 查看根节点;ls /root 查看/root节点下的所有节点

create path data 创建节点 

set path data [watcher] 设置节点值

get path data 获得指定节点值

 

在同一台机器上设置的为伪集群,但一样实现了在随便在哪个server上做节点变更,其它节点会及时同步的效果.

猜你喜欢

转载自blog.csdn.net/salonzhou/article/details/50960509