zookeeper使用场景以及配置管理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dazuiba008/article/details/80774186
zookeeper特点:
节点可以存储数据
可以watch节点,触发相关

使用场景1:配置管理

这里是数据库配置,当我们应用服务修改配置的时候,只需要修改配置中心,发布,那么应用就会自动监听数据库配置的改动,然后重新读取配置,连接数据库,省去了修改每台业务服务器的复杂度。


使用场景2:分布式锁

下图就是一个分布式锁的实现,当第一个连接获取通过zk获取第一个节点锁后,下一个节点watch这个节点,当前节点被删除后,释放锁,下一个连接创建节点,获得锁资源。相当于一个队列,等待上一个锁释放后,下一个才可以操作。




回归初心,HDFS的HA实现



首先Journal nodes进行控制数据的同步,ZKFailover controller控制NN,和zk,zk负责选举master。


实例:

四个节点全部安装zk

192-168-100-142
192-168-100-217
192-168-100-225

192-168-100-34

下载安装包
wget http://mirrors.shu.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
解压并且配置
创建相关路径
mkdir -p /opt/hadoop/zookeeper/log
mkdir -p /opt/hadoop/zookeeper/data
修改配置
cd /usr/local/zookeeper-3.4.10/conf/
cp zoo_sample.cfg zoo.cfg  
vi zoo.cfg 填写如下配置:
dataDir=/opt/hadoop/zookeeper/data
dataLogDir=/opt/hadoop/zookeeper/log
server.0=192-168-100-142:8880:7770
server.1=192-168-100-217:8881:7771
server.2=192-168-100-225:8882:7772
server.3=192-168-100-34:8883:7773

在每一个节点添加myid文件,与上面的配置server.*一一对应
192-168-100-142 
vim /opt/hadoop/zookeeper/data/myid 
写入0
192-168-100-217
写入1
192-168-100-225
写入2
192-168-100-34
写入3

全部配置文成后,分别在每个节点启动zk
zkServer.sh start 
启动后可以通过zkServer.sh status查看状态
这里可以看到192-168-100-142 是leader,其他均为follower
[root@192-168-100-142 data]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: leader
[root@192-168-100-217 data]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower






















猜你喜欢

转载自blog.csdn.net/dazuiba008/article/details/80774186