大数据开发

Zookeeper 简介

2021-02-14  本文已影响0人  奋斗的蛐蛐

Zookeeper 简介

Zookeeper是什么?

Zookeeper 是一个分布式协调服务的开源框架。 主要⽤来解决分布式集群中应用系统的一致性问题, 例如怎样避免同时操作同一数据造成脏读的问题。分布式系统中数据存在一致性的问题!!

Zookeeper的架构组成

Zookeeper的架构组成.png

Zookeeper特点

  1. Zookeeper:一个领导者(leader:⽼大),多个跟随者(follower:小弟)组成的集群。
  2. Leader负责进行投票的发起和决议,更新系统状态(内部原理理)
  3. Follower用于接收客户请求并向客户端返回结果,在选举Leader过程中参与投票
  4. 集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。
  5. 全局数据⼀致:每个server保存一份相同的数据副本,Client⽆论连接到哪个server,数据都是一 致的。
  6. 更新请求顺序进行(内部原理理)
  7. 数据更新原⼦性,一次数据更新要么成功,要么失败。

Zookeeper环境搭建

搭建方式

集群搭建

解压缩

tar -zxvf zookeeper-3.4.14.tar.gz -C ../servers/

修改配置⽂文件创建data与log⽬目录

 
#创建zk存储数据⽬目录
mkdir -p /opt/lagou/servers/zookeeper-3.4.14/data 
#创建zk⽇日志⽂文件⽬目录
mkdir -p /opt/lagou/servers/zookeeper-3.4.14/data/logs 
#修改zk配置⽂文件
cd /opt/lagou/servers/zookeeper-3.4.14/conf
#文件改名
mv zoo_sample.cfg zoo.cfg

vim zoo.cfg

#更新datadir
dataDir=/opt/lagou/servers/zookeeper-3.4.14/data
#增加logdir
dataLogDir=/opt/lagou/servers/zookeeper-3.4.14/data/logs
#增加集群配置 
##server.服务器ID=服务器IP地址:服务器之间通信端口:服务器之间投票选举端口
server.1=linux121:2888:3888
server.2=linux122:2888:3888
server.3=linux123:2888:3888
#打开注释 
#ZK提供了了⾃动清理事务日志和快照⽂件的功能,这个参数指定了清理频率,单位是⼩时 autopurge.purgeInterval=1

配置myid,在zookeeper的 data⽬录下创建⼀个myid文件,内容为1,这个文件就是记录每个服务器的ID

 cd /opt/lagou/servers/zookeeper-3.4.14/data
 echo 1 > myid

安装包分发并修改myid的值

rsync-script /opt/lagou/servers/zookeeper-3.4.14

修改myid值 linux122

echo 2 >/opt/lagou/servers/zookeeper-3.4.14/data/myid

修改myid值 linux123

echo 3 >/opt/lagou/servers/zookeeper-3.4.14/data/myid

依次启动三个zk实例例,启动命令(三个节点都要执⾏行行)

/opt/lagou/servers/zookeeper-3.4.14/bin/zkServer.sh start 

查看zk启动情况

/opt/lagou/servers/zookeeper-3.4.14/bin/zkServer.sh status

集群启动停⽌止脚本

vim zk.sh


#!/bin/sh
echo "start zookeeper server..."
if(($#==0));then
echo "no params";
exit;
fi
hosts="linux121 linux122 linux123"
for host in $hosts
do
ssh $host "source /etc/profile; /opt/lagou/servers/zookeeper- 3.4.14/bin/zkServer.sh $1"
done
上一篇 下一篇

猜你喜欢

热点阅读