0


Zookeeper(动物园管理员)

**Zookeeper **

**概述 **

  1. Zookeeper本身是Apache提供的一套开源的用于进行分布式管理和协调的机制/框架。官网:http

s://zookeeper.apache.org

  1. Zookeeper本身提供了中心化服务,包含统一配置、统一命名、分布式锁服务、分布式组服务,更

多的时候,Zookeeper充当了一个注册中心来使用

  1. Zookeeper是Yahoo!仿照了Google的<The Chubby Lock Service>开发的后来贡献给了Apache的

一套框架

**安装 **

**概述 **

  1. 在大数据中,几乎所有的框架,它的安装都提供了三种模式

  2. 单机模式:在一台服务器上安装,往往能够启动这个框架的部分服务

  3. 伪分布式:在一台服务器上安装,但是利用多个线程模式分布式环境,能够启动这个框架的

大部分甚至于服务

  1. 分布式:在集群上安装,能够启动这个框架的所有服务

  2. 现阶段,先安装单机模式,搞定所有的概念之后,再到集群中安装

*安装***JDK **

  1. Centos7中可能自带了OpenJDK,需要卸载移除掉

  2. 上课的时候要求,所有的软件安装包放在 /opt/presoftware 下,将软件安装在 /opt/software

  1. 进入presoftware下,将JDK安装包上传到这个目录下

  2. 解压到software目录下

  3. 进入software目录下

rpm -qa | grep -i jdk | xargs rpm -ev --nodeps

cd /opt

mkdir presoftware

mkdir software

cd presoftware

将安装包上传到这个路径下

rz

tar -xvf jdk-8u371-linux-x64.tar.gz -C /opt/software/6. 在Linux中, 环境变量的配置有两个位置: /etc/profile 和 ~/.bashrc 。无论哪一个路径,默

认都会扫描 /etc/profile.d 目录下的脚本文件,所以,配置环境变量一般是放

在 /etc/profile.d

*安装***Zookeeper(单机模式) **

  1. 将安装包上传到Linux上

  2. 解压

  3. 重命名

  4. 配置环境变量

  5. 配置Zookeeper

  6. 进入Zookeeper的配置目录

cd /opt/software/

重命名

mv jdk1.8.0_371/ jdk1.8

需要在/etc/profile.d来脚本文件

touch /etc/profile.d/javahome.sh

编辑脚本文件

vim /etc/profile.d/javahome.sh

在文件中添加

export JAVA_HOME=/opt/software/jdk1.8

export PATH=$PATH:$JAVA_HOME/bin

保存退出,生效

source /etc/profile.d/javahome.sh

测试

javac -version

或者

java -version

cd /opt/presoftware/

rz

tar -xvf apache-zookeeper-3.9.1-bin.tar.gz -C /opt/software/

cd /opt/software/

mv apache-zookeeper-3.9.1-bin/ zookeeper-3.9.1

编辑文件

vim /etc/profile.d/zookeeperhome.sh

在文件中添加

export ZOOKEEPER_HOME=/opt/software/zookeeper-3.9.1

export PATH=$PATH:$ZOOKEEPER_HOME/bin

保存退出,生效

source /etc/profile.d/zookeeperhome.sh

cd /opt/software/zookeeper-3.9.1/conf2. 修改配置

  1. 启动Zookeeper

  2. 检查Zookeeper的状态

  3. 进入Zookeeper的客户端

**技术点 ****特点 **

  1. Zookeeper默认对外提供的客户端端口号是2181,可以通过 zoo.cfg 中的 clientPort 属性来修

改,但是不建议

  1. Zookeeper本身是一个树状结构,根节点是 /

  2. 不同于Linux的地方在于,Zookeeper中没有相对路径的说法,所有节点路径都必须从根节点开始

计算

  1. 当Zookeeper启动的时候,自动的添加一个节点 /zookeeper ,存放的是Zookeeper本身的集群信

  1. 在Zookeeper3.7及以前的版本中,要求每一个节点在创建的时候必须携带数据,这个数据可以是

对节点的描述或者是配置信息

  1. 每一个节点携带的数据默认是在内存以及磁盘上

  2. 维系在内存的目的是为了读写快

  3. 维系在磁盘的目的是为了持久化

  4. 数据在磁盘上的存储路径默认由 dataLogDir 属性来控制,默认情况下,如果没有单独指定,

dataLogDir 的属性值和 dataDir 是一致的

  1. 临时节点下不能挂载子节点!

  2. Zookeeper会为每一次的写操作分配一个全局递增的编号,这个编号称之为事务id,简写为

Zxid 。一个节点刚被创建的时候,三个事务id是一致的

**操作命令 **

复制文件 - 注意:Zookeeper启动的时候默认会使用zoo.cfg中的配置

cp zoo_sample.cfg zoo.cfg

编辑文件

vim zoo.cfg

修改dataDir属性的值

dataDir=/opt/software/zookeeper-3.9.1/data

zkServer.sh start

方式一:

jps

如果有QuorumPeerMain,那么表示Zookeeper在运行

方式二:

zkServer.sh status

zkCli.sh

**命令 ****解释 **

ls / 查看跟节点的子节点

create /big 在根节点下创建子节点big - 这种创建方式是从Zookeeper的3.8版本开的

create /test 'this is a test

server' 在根节点下创建test节点,并且携带数据

create /data '' 创建节点,并且给定数据为空

get /big 获取节点的数据

set /video 'size=500M' 修改数据

delete /test 删除节点,要求节点为空(不能有子节点)

rmr /video 删除这个节点及子节点,从Zookeeper3.8开始,这个命令就过时了

deleteall /video 删除这个节点及子节点,从Zookeeper3.8开始建议使用的命令

ls -w / 监控指定节点的子节点的个数变化 - 只监控一次

get -w /news 监控指定节点的数据是否变化 - 只监控一次

removewatches /news 移除监控

history 查看执行过的指令

redo 24 重新执行编号为24的命令

close 关闭连接,但是没有退出Zookeeper客户端

quit 直接退出客户端,需要通过 zkCli.sh 重新进入

connect localhost:2181 连接本机的2181端口

getAllChildrenNumber / 获取根节点以及所有子节点的数量

setquota -n 2 /news /news节点下的子节点个数最好不要超过2个

setquota -b 1024 /news /news节点的数据最好不要超过1024B

listquota /news 获取/news节点上的限制

delquota /news 删除/news节点上的限制

version 查看Zookeeper的版本

whoami 查看当前的用户

sync / 将根目录下的数据同步给其他的follower

getEphemerals / 获取根节点的临时节点

create -e /big '' 创建临时节点

**命令 ****解释 **

create -s /test/t '' 创建持久顺序节点

create -e -s /test/t '' 创建临时顺序节点

stat /news 查看节点的属性/信息

**节点 ****解释 **

Persistent 持久节点

Ephemeral 临时节点

Persistent_Sequential 持久顺序节点

Ephemeral_Sequential 临时顺序节点

属性**/****信息 ****解释 **

cZxid 这个节点创建对应的事务id,整个过程中第几个写操作创建了这个节点

ctime 这个节点创建对应的时间

mZxid 这个节点的数据修改对应的事务id,整个过程中第几个写操作修改了数据

mtime 这个节点的数据修改对应的时间

pZxid 这个节点的子节点个数变化对应的事务id,整个过程中第几个写操作导 致这个节点的子节点个数产生了变化

cversion 这个节点的子节点个数变化了几次

dataVersion 这个节点的数据被修改了几次 - 数据版本

aclVersion 这个节点的权限被修改了几次

ephemeralOwner 如果是持久节点,此项值为0x0;如果是临时节点,此项值为当前的会 话编 号(sessionid)

dataLength 数据的长度(字节个数)

numChildren 子节点个数


本文转载自: https://blog.csdn.net/m0_51388399/article/details/136471757
版权归原作者 程序员小郭同学 所有, 如有侵权,请联系我们删除。

“Zookeeper(动物园管理员)”的评论:

还没有评论