zookeeper伪集群化实现
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显示节点变化信息
- 使用Zookeeper实现集群中选择单机器执行任务并自动切换
- Zookeeper集群实现服务发现
- zookeeper集群与Dubbo的实现与整合
- 使用Zookeeper实现来监控服务器集群及负载状态
- Zookeeper实现集群和负载均衡---(3)详细设计
- 一步到位分布式开发Zookeeper实现集群管理
- 使用zookeeper实现集群和负载均衡
- 使用docker容器创建Kafka集群管理、状态保存是通过zookeeper实现,所以先要搭建zookeeper集群
- centos7安装hadoop集群,并基于zookeeper实现HA高可用
- zookeeper如何实现服务节点,集群的管理
- Zookeeper集群简单实现
- 使用zookeeper实现集群和负载均衡
- Zookeeper集群安装与实现Hadoop HA机制
- zookeeper和java实现的统一配置管理和集群节点管理简单案例
- zookeeper入门(1)在单机上实现ZooKeeper伪机群/伪集群部署
- ActiveMQ与Zookeeper实现集群策略具体实现
- zookeeper+dubbo+springboot实现高可用服务治理(集群版)
- 在单机上实现ZooKeeper伪集群部署
- 使用zookeeper实现集群和负载均衡
- 使用zookeeper实现集群和负载均衡