您的位置:首页 > 其它

zookeeper伪集群化实现

2020-06-29 04:26 10 查看

1.安装单机Zookeeper

1.需要先安装jdk

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

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

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

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

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

[code]mv zookeeper-3.4.9 zookeeper

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

编辑/etc/profile文件

[code]vi /etc/profile

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

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

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

[code]source /etc/profile

2.ZooKeeper 伪集群环境搭建

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

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

[code]cd zookeeper/conf
[code]cp zoo_sample.cfg zk1.cfg

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

[code]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

[code]cp zk1.cfg zk2.cfg
[code]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

[code]cp zk1.cfg zk3.cfg
[code]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.创建上一步骤配置的目录所需要的文件夹

[code]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文件,并添加相应的内容

[code]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集群

[code]zkServer.sh start zk1.cfg
zkServer.sh start zk2.cfg
zkServer.sh start zk3.cfg

 8.查看集群状态

[code]zkServer.sh status zk1.cfg
zkServer.sh status zk2.cfg
zkServer.sh status zk3.cfg

9.测试结果如下 

3.ZooKeeper命令行操作

1.访问客户端

[code]zkCli.sh -server 192.168.2.10:2182

登录成功如下 

 

2.使用help查看操作命令

 

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

[code]create /servers ss1

4.查看节点

[code]ls /

5.查看节点内容 

[code]get /servers

6.修改节点内容

[code]set /servers ss2

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

[code]delete /servers

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

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

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

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

[code]create -e /servers2 es1

 

 

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

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

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

客户端2183进行监听

[code]get /servers watch

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

[code]set /servers ss3

客户端2183会显示如下信息 

 10.目录变化监听

客户端2183进行监听

[code]ls /servers watch

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

[code]create /servers/server1 cs1

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

 

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: