您的位置:首页 > 其它

zookeeper安装与伪集群部署

2016-03-23 09:43 543 查看
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个目录(模拟3台zk
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~2183,2287~2289,以及3387~3389相互错开。另外每个zk的instance,都需要设置独立的数据存储目录、日志存储目录,所以dataDir、dataLogDir这二个节点对应的目录,需要手动先创建好。

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.cfg中server.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上做节点变更,其它节点会及时同步的效果.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: