1.Zookeeper
(1)官网:http://zookeeper.apache.org/
(2)介绍
- Apache ZooKeeper致力于开发和维护开源服务器,实现高度可靠的分布式协调
- ZooKeeper是一种集中式服务,用于维护配置信息,命名,提供分布式同步和提供组服 务。所有这些类型的服务都以分布式应用程序的某种形式使用。每次实施它们都需要做 很多工作来修复不可避免的错误和竞争条件。由于难以实现这些类型的服务,应用程序 最初通常会吝啬它们,这使得它们在变化的情况下变得脆弱并且难以管理。即使正确完 成,这些服务的不同实现也会在部署应用程序时导致管理复杂性。
2.Zookeeper工作原理:
(1)zookeeper功能:
- 存储+监听
(2)Zookeeper工作原理
3.Zookeeper角色
(1)主从结构:
- Leader 领导者 ->主
- Follower 追随者 ->从
(2)zk集群中只要有半数以上的节点存活,zk集群就能正常工作。所以搭建zk集群最好搭建 奇数台(3,5,11)
4.Zookeeper功能
大数据中使用zookeeper业务:
(1)做统一的配置管理
(2)做统一的命名服务
(3)做统一的集群管理
(4)做服务器的动态上下线感知(代码)
5.Zookeeper单节点安装部署
(1)下载安装包
(2)上传到linux
(3)解压
tar -zxvf zookeeper-3.4.14.tar.gz -C /opt/module
(4)修改配置文件zoo.cfg
cd /opt/module/zookeeper-3.4.14
mkdir zkData //创建目录
cd /opt/module/zookeeper-3.4.14/conf //进入配置文件所在文件夹
mv zoo_sample.cfg zoo.cfg //重命名配置文件
vi zoo.cfg //修改zoo.cfg
修改内容为:
dataDir=/opt/module/zookeeper-3.4.14/zkData //修改为刚才新建的目录地址
(5)创建文件夹zkData,见上一步
(6)启动zookeeper
bin/zkServer.sh start //启动zookeeper
(7)启动zookeeper客户端
cd /opt/module/zookeeper-3.4.14/bin //
./zkCli.sh //启动zookeeper客户端
6.Zookeeper集群安装部署
(1)下载安装包:
(2)上传到Linux:
(3)解压:
tar -zxvf zookeeper-3.4.14.tar.gz -C /opt/module
(4)修改配置文件名
cd /opt/module/zookeeper-3.4.14/conf //进入目录
mv zoo_sample.cfg zoo.cfg //重命名配置文件
(5)修改配置文件
a.新建zkData文件夹
cd /opt/module/zookeeper-3.4.14
mkdir zkData //新建目录
cd /opt/module/zookeeper-3.4.14/conf //进入目录
vi zoo.cfg //修改配置文件
b.修改zoo.cfg,其修改内容如下:
dataDir=/opt/module/zookeeper-3.4.14/zkData //修改为刚才新建的目录地址
//新增内容
server.1=bigdata121:2888:3888
server.2=bigdata122:2888:3888
server.3=bigdata123:2888:3888
c.在zkData新建myid文件
cd /opt/module/zookeeper-3.4.14/zkData
touch myid //新建myid
vi myid //修改myid
d.myid修改内容如下:
1 //增添内容
(6)拷贝Zookeeper到其他机器
scp -r zookeeper-3.4.14 bigdata122:/opt/module/
scp -r zookeeper-3.4.14 bigdata123:/opt/module/
(7)注意需要修改每台机器的myid文件,设置为当前的机器编号即可
//bigdata122机器
cd /opt/module/zookeeper-3.4.14/zkData
vi myid
//myid内容修改为2
2
//bigdata123机器
cd /opt/module/zookeeper-3.4.14/zkData
vi myid
//myid内容修改为3
3
(8)启动zookeeper集群
cd /opt/module/zookeeper-3.4.14
bin/zkServer.sh start //每台机器都要启动
(9)查看zookeeper状态
cd /opt/module/zookeeper-3.4.14
bin/zkServer.sh status //查看zookeeper状态
(10)关闭zookeeper集群
cd /opt/module/zookeeper-3.4.14
bin/zkServer.sh stop //关闭
7.Zookeeper选举机制
选举机制8.命令行操作
(1)配置环境变量
vi ~/.bash_profile //修改配置文件
修改内容为:
ZOOKEEPER_HOME=/opt/module/zookeeper-3.4.14
export ZOOKEEPER_HOME
PATH=$ZOOKEEPER_HOME/bin:$PATH
export PATH
(2)启动客户端
zkCli.sh
(3)连接其他机器客户端操作
connect bigdata122:2181
(4)查看历史操作
history
(5)查看当前节点信息
ls /
(6)存储:创建节点
命令格式:
- create path value
create /itstar 10
(7)查看节点的值
命令格式:
- get path
get /itstar
(8)创建节点的可选项
命令格式:
- create [-s] [-e] path data acl
create -e /reba henmei //注意:此时-e创建的是临时的短暂节点,退出客户端后消失。退出客户端:quit
create -s /jielun henshuai //注意:此时-s创建是带序号的节点,可以创建节点名相同的,序号依次累加
create -e -s /yizhou henchou //创建短暂带序号节点
(9)修改节点值
命令格式:
- set path data [version] //version版本,必须从0开始
set /itstar 20
(10)删除节点
命令格式:
- delete path
delete /itstar
(11)创建子节点
create /reba/pannan paoqilai
(12)递归删除
rmr /reba
(13)监听
- 获得监听:get path watch
- 获得当前节点下增减变化:ls path watch
(14)查看当前节点状态
命令格式: - stat path
stat /itstar
9.节点状态信息
cZxid = 0x200000006 //zookeeper事务id
ctime = Sun Jul 21 19:12:54 CST 2019 //节点创建时间
mZxid = 0x200000006 //最后更新的czxid
mtime = Sun Jul 21 19:12:54 CST 2019 // 最后更新的时间
pZxid = 0x200000006 //最后更新子节点的czxid
cversion = 0 //子节点的变化号子节点修改次数
dataVersion = 0 //数据变化号
aclVersion = 0 //访问控制列表的变化号
ephemeralOwner = 0x0 //临时阶段判断
dataLength = 2 //节点数据长度
numChildren = 0 //子节点个数
10.JavaAPI实操
(1)在pom.xml文件中导入依赖
网友评论