zookeeper伪集群化实现

本文详细介绍了如何在单机环境下搭建Zookeeper的伪集群,包括安装步骤、配置多个实例以及检查集群状态。同时,文章还涵盖了Zookeeper命令行的基本操作,如创建、查看、修改和删除节点,以及节点的类型和监听机制。
摘要由CSDN通过智能技术生成

1.安装单机Zookeeper

1.需要先安装jdk

2.安装zookeeper,下载地址https://archive.apache.org/dist/zookeeper/ ,选择对应的版本,我这里选择3.4.9版本进行安装,复制你要下载的版本链接地址,使用wget命令下载到虚拟机中。

wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz

3.解压zookeeper压缩文件到/usr/local/apps/下,该app目录需要自己创建。

tar -zxvf ~/zookeeper-3.4.9.tar.gz -C /usr/local/apps/

4.重命名zookeeper安装目录,此步骤非必须,只是为了方便操作

mv zookeeper-3.4.9 zookeeper

5.修改环境变量,此步骤是为了在执行zookeeper一些命令(如启动命令)时不一定非要进入bin目录下以相对路径的方式执行或者不进入bin目录下以绝对路径的方式执行,配置了环境变量在任何目录下都可以执行zookeeper的bin目录下的命令。

编辑/etc/profile文件

vi /etc/profile

添加如下内容,ZOOKEEPER_HOME配置的是zookeeper安装位置,$ZOOKEEPER_HOME指代的就是/usr/local/apps/zookeeper,PATH配置的就是将/usr/local/apps/zookeeper/bin变量追加到PATH中。

export ZOOKEEPER_HOME=/usr/local/apps/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

6.重新编译文件使修改后的文件生效

source /etc/profile

2.ZooKeeper 伪集群环境搭建

1.ZooKeeper伪集群的实现是在一台虚拟机上创建3个zookeeper实例,由于zookeeper启动依赖于zoo_sample.cfg配置文件,所以我这里另外创建了3份配置文件以来模拟3个zookeeper实例

创建zookeeper实例1,进入zookeeper/conf目录下复制一份配置文件名为zk1.cfg

cd zookeeper/conf
cp zoo_sample.cfg zk1.cfg

2.修改zk1.cfg配置文件,有的属性有默认值需要注释掉,以免造成冲突

dataDir=/usr/local/apps/zookeeper/data/zk1
dataLogDir=/usr/local/apps/zookeeper/log/zk1

clientPort=2181

#server.序号= (主机名, 心跳端口、数据端口)
server.1=192.168.2.10:1888:2888	
server.2=192.168.2.10:3888:4888
server.3=192.168.2.10:5888:6888

 3.创建zookeeper实例2

cp zk1.cfg zk2.cfg
dataDir=/usr/local/apps/zookeeper/data/zk2
dataLogDir=/usr/local/apps/zookeeper/log/zk2

clientPort=2182

#server.序号= (主机名, 心跳端口、数据端口)
server.1=192.168.2.10:1888:2888	
server.2=192.168.2.10:3888:4888
server.3=192.168.2.10:5888:6888

 4.创建zookeeper实例3

cp zk1.cfg zk3.cfg
dataDir=/usr/local/apps/zookeeper/data/zk3
dataLogDir=/usr/local/apps/zookeeper/log/zk3

clientPort=2183

#server.序号= (主机名, 心跳端口、数据端口)
server.1=192.168.2.10:1888:2888	
server.2=192.168.2.10:3888:4888
server.3=192.168.2.10:5888:6888

 5.创建上一步骤配置的目录所需要的文件夹

mkdir -p /usr/local/apps/zookeeper/data/zk1
mkdir -p /usr/local/apps/zookeeper/log/zk1

mkdir -p /usr/local/apps/zookeeper/data/zk2
mkdir -p /usr/local/apps/zookeeper/log/zk2

mkdir -p /usr/local/apps/zookeeper/data/zk3
mkdir -p /usr/local/apps/zookeeper/log/zk3

 6.在对应的data文件夹下创建myid文件,并添加相应的内容

echo "1" > /usr/local/apps/zookeeper/data/zk1/myid
echo "2" > /usr/local/apps/zookeeper/data/zk2/myid
echo "3" > /usr/local/apps/zookeeper/data/zk3/myid

7.启动zookeeper集群

zkServer.sh start zk1.cfg
zkServer.sh start zk2.cfg
zkServer.sh start zk3.cfg

 8.查看集群状态

zkServer.sh status zk1.cfg
zkServer.sh status zk2.cfg
zkServer.sh status zk3.cfg

9.测试结果如下 

3.ZooKeeper命令行操作

1.访问客户端

zkCli.sh -server 192.168.2.10:2182

登录成功如下 

 

2.使用help查看操作命令

 

3.创建节点,在根目录下创建servers节点,内容为ss1

create /servers ss1

4.查看节点

ls /

5.查看节点内容 

get /servers

6.修改节点内容

set /servers ss2

7.删除节点,delete命令只能删除叶子节点(没有子节点的节点),rmr 命令可以删除非叶子节点

delete /servers

 8.节点类型,主要有两种

(1)临时(ephemeral)(断开连接自己删除)

(2)持久(persistent)(断开连接不删除)

创建临时节点,退出客户端后再重新登录客户端查看,节点已被删除。

create -e /servers2 es1

 

 

创建持久节点,如果不加-e就是创建的持久节点点,客户端退出再次登录节点还在。

不能在临时节点下再创建任何类型的节点

 9.节点内容监听,使用get path watch监听节点,当节点内容发生变化时就会收到节点变化的信息

客户端2183进行监听

get /servers watch

客户端2181 将/servers节点内容修改为ss3

set /servers ss3

客户端2183会显示如下信息 

 10.目录变化监听

客户端2183进行监听

ls /servers watch

 客户端2181添加一个/servers/server1节点

create /servers/server1 cs1

客户端2183显示节点变化信息

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值