zookeeper下载地址

http://mirrors.cnnic.cn/apache/zookeeper/


解压zookeeper的tar.gz文件,配置修改配置conf


1,将conf目录下的zoo_sample.cfg 拷贝3分 zoo1.cfg,zoo2.cfg,zoo3.cfg


重要配置参数说明:

tickTime

Zookeeper使用的基本时间,时间单位为毫秒。它用于心跳机制,并且设置最小的session超时时间为两倍心跳时间


dataDir

保存内存数据库快照信息的位置,如果没有其他说明,更新的事务日志也保存到数据库。


clientPort

监听客户端连接的端口。


注意:配置中会有以下参数,server.1 这里的1即为dataDir下myid文件(在后面有创建说明)里的数字,可任意配置,推荐为ip最后一个

localhost后面有两个端口,第一个端口为leader和follower数据交换端口

第二个为leader选举端口,如leader宕了,可以重新选举

注意:zookeeper集群数量最好为奇数个,因为 zookeeper有一个检测机制,如果zookeeper集群成员数量宕机数超过或等于一半,则这个集群就挂掉了

server.1=localhost:2888:3888


###############################################################


1,zoo1.cfg:

---------------------------


tina@ubuntu:~/zookeeper/conf$ cat zoo1.cfg 

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial 

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between 

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

dataDir=/home/sina/zookeeper/data

# the port at which the clients will connect

clientPort=2181

server.1=localhost:2888:3888

server.2=localhost:2889:3889

server.3=localhost:2890:3890



###############################################################


2,zoo2.cfg

----------------------------------------------------------------


tina@ubuntu:~/zookeeper/conf$ more zoo2.cfg 

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial 

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between 

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

dataDir=/home/sina/zookeeper/data1

# the port at which the clients will connect

clientPort=2182

server.1=localhost:2888:3888

server.2=localhost:2889:3889

server.3=localhost:2890:3890


###############################################################


3,zoo3.cfg

-----------------------------------------------------------------------


tina@ubuntu:~/zookeeper/conf$ more zoo3.cfg 

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial 

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between 

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

dataDir=/home/sina/zookeeper/data2

# the port at which the clients will connect

clientPort=2183

server.1=localhost:2888:3888

server.2=localhost:2889:3889

server.3=localhost:2890:3890

###############################################################


创建myid:分别在 /data,data1,data2,下建立myid 文件,内容分别是1,2,3(这里的data,data1,data2 即配置文件里dataDir指定文件夹)


---------------------------------

启动zookeeper服务


1. 启动ZK服务:       sh bin/zkServer.sh start

2. 查看ZK服务状态: sh bin/zkServer.sh status

3. 停止ZK服务:       sh bin/zkServer.sh stop

4. 重启ZK服务:       sh bin/zkServer.sh restart


分别启动1,2,3:


 ./zkServer.sh start zoo1.cfg


./zkServer.sh start zoo2.cfg


./zkServer.sh start zoo3.cfg


命令行操作:


 ./zkCli.sh -server localhost:2181 用zookeeper的zkCli.sh 连接客户端


ls / 可以查看/下的节点

create - 在树形结构的位置中创建节点

delete - 删除一个节点(如果这个节点下还有节点,需要把下面节点删除,才能删除这个节点)

exists - 测试节点在指定位置上是否存在

get data - 从节点上读取数据

set data - 往节点写入输入

get chilren - 检索一个节点的子节点列表

sync - 等待传输数据


推荐:如果想了解更详细信息zookeeper原理和使用,可以查看官方文档,或者官网翻译网页http://zookeeper.majunwei.com/