Zookeeper学习-03 Zookeeper入门

1、下载

官网地址:http://zookeeper.apache.org/

下载01.png

下载02.png

2、解压并配置

1)把zoo_sample.cfg复制一份,并且重命名为zoo.cfg,并且修改zoo.conf里相关配置


配置更改.png

最重要的两个配置是:
dataDir:放置日志文件和快照文件的路径,不建议为tmp目录,因为Linux系统会对tmp目录自动清理
clientPort:外部应用连接Zookeeper的端口,默认是2181
把dataDir的配置更改为:/root/data/zookeeper,配置的是绝对路径
2)设置环境变量

vim /etc/profile
export ZOOKEEPER_HOME=/usr/local/apache-zookeeper-3.6.0-bin
export ZOOBINDIR=$ZOOKEEPER_HOME/bin
export PATH=$ZOOBINDIR:$PATH

修改保存后,使用source /etc/profile 更新环境变量。

3、启动Zookeeper

使用zkServer.sh start 启动Zookeeper服务。
检查Zookeeper日志是否有出错信息。
检查Zookeeper的数据文件。
检查Zookeeper是否在2181端口上监听。


启动Zookeeper.png
  1. 执行以下语句,查看日志文件中是否有异常信息:
    【grep -E 选项可以用来扩展选项为正则表达式。 如果使用了grep 命令的选项-E,则应该使用 | 来分割多个pattern,以此实现OR操作;
    -i 不区分大小写
grep -E -i "((exception)|(error))" *
日志错误查看.png

无输出,说明日志中无报错信息。
2)查看Zookeeper的交易日志文件
在/root/data/zookeeper目录下,通过tree命令查看【可通过yum -y install tree 命令安装tree】:


tree命令查看.png

此时只是快照文件。
3)查看Zookeeper是否在指定的端口上监听

netstat -an | ag 2181 或者 netstat -lnp|grep 2181 或者 lsof -i tcp:2181
端口监听.png

以上证明Zookeeper服务已经成功启动了。

4、zkCli简单使用

1)启动zkCli,查看是否与Zookeeper节点建立了有效连接且Session是否已经初始化完成


zkCli命令.png

zkCli启动成功.png

通过输入help可以查看支持的常用命令:


zkCli help命令.png

通过命令 ls -R / 可以查看Zookeeper自带的znode:


查看自带znode.png

2)创建znode


创建znode.png

再通过ls -R / 命令查看znode结构:

查看znode结构.png

5、实现一个锁

分布式锁要求:如果锁的持有者宕机了,锁可以被释放。Zookeeper的ephemeral节点恰好具备这样的特性:


实现一个锁.png

步骤:
1)打开两个zkCli客户端
2)在第一个客户端中,创建一个临时znode:

create -e /lock
创建锁01.png

表示第一个客户端加锁成功。
3)在第二个客户端中也尝试进行加锁,加锁的操作其实就是创建znode


创建锁02.png

加锁失败,因为lock这个节点已经被别人创建了
4)在第二个客户端,监控znode,也就是在等待锁被释放

 stat -w  /lock
查看锁状态.png

5)退出第一个客户端:quit


退出客户端.png

在第二个客户端里面,会收到一个WatchedEvent事件:


查看WachedEvent事件.png

6)在第二个客户端收到WatchedEvent事件之后,再尝试加锁,此时加锁成功


加锁成功.png

你可能感兴趣的:(Zookeeper学习-03 Zookeeper入门)