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/