zookeeper单机伪集群集群部署
2023-09-11 14:16:34 时间
#zookeeper是啥?角色?
我们可以把Zookeeper理解为一个精简的文件系统(和Linux文件系统结构非常相似),其每一个节点称为znode,znode下可以存放子节点,
也可以直接对节点进行赋值存值。
Zookeeper被应用与一些集群上,提高集群的高可用。它可以帮助你避免单点故障,使你的系统更加可靠。
Zookeeper的集群我们可以通俗的理解为,一个有Leader的团队,团队中各个成员的数据都是一致的。团队中的Leader采用选举算法推举,
所以可以保证在Leader出现问题的时候,又会选举出新的Leader。(fast paxos 选举算法大家可以深入了解下)
Zookeeper使用路径来描述节点,节点可以被看做是一个目录,也可以被看做是一个文件,它同时具有两者的特点。
Zookeeper的Watch机制也是它的最大被应用的原因。当我们有很多客户端连接到Zookeeper时,当被设置了Watch的数据发生了改变的时候,
则服务器将这个改变发送给设置了Watch的客户端,通知它们。所以我们经常用它来做业务系统的统一配置管理。使用zk的Watch要特别注意一点就是它的“一次性触发器”(最后的Java例子中有模拟这点)。
########################### 以上就是网上的回答有更好的答案可以继续 ############################
#linux 下 zookeeper搭建集群 准备3台机器或者一台不同端口搭建为集群。
前提是本机有安装jdk
1。
# zookeeper 配置一下环境变量(此步骤的目的是:每次启动服务就不需要定位到Zookeeper的bin目录了)可以不用配置。
vim /etc/profile 添加一下内容位置随便。
export ZK_HOME=/usr/local/zookeeper-3.4.11
export PATH=$ZK_HOME/bin:$PATH
配置完重新生效一下文件
source /etc/profile
#解压后 配置Zookeeper的配置文件(按照以下命令来错不了)
cd conf (Zookeeper 下的conf目录)
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
# zoo.cfg 添加以下内容
dataDir=/usr/local/zookeeper-3.4.11/data (根据自己的需要修改)
server.0=192.168.192.128:2888:3888
server.1=192.168.192.129:2888:3888
server.2=192.168.192.130:2888:3888
解释一下上面的配置约定
server.X=A:B:C
X-代表服务器编号
A-代表ip
B-代表 心跳端口
C-代表端口,数据端口这个端口用来系统之间通信
#注意出错后出错后一点要查看zookeeper.out文件,进行错误排查,这样才能知道自己到底出的是什么错误,好对症下药。
#根据zoo.cfg 中的配置的 server 来配置吧。
mkdir data (zoo.cfg 中配置的 dataDir中data的路径在哪里就把data配置到哪里)
在data中创建myid文件
vi myid (这个命令是没有文件就创建,有文件就编辑所有骚年不要困惑。)
写 0 1 2
有个命令可以直接写入骚年我忘记了有机会自己补上吧。
#这个1是和上面zoo.cfg配置下面的server对应的,好像是必须从1开始.0开始的时候我也出问题了。
#集群模式
#集群模式的配置和伪集群基本一致.
由于集群模式下, 各server部署在不同的机器上, 因此各server的conf/zoo.cfg文件可以完全一样.
#下面是一个示例:
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/zookeeper/data
-- 日志
dataLogDir=/home/zookeeper/logs
clientPort=4180
server.43=10.1.39.43:2888:3888
server.47=10.1.39.47:2888:3888
server.48=10.1.39.48:2888:3888
示例中部署了3台zookeeperserver, 分别部署在
10.1.39.43,
10.1.39.47,
10.1.39.48上. 需要注意的是,
各server的dataDir目录下的myid文件中的数字必须不同.
10.1.39.43server的myid为43,
10.1.39.47server的myid为47,
10.1.39.48server的myid为48.
分别进入/Users/apple/zookeeper0/bin,
/Users/apple/zookeeper1/bin,
/Users/apple/zookeeper2/bin三个目录,
启动server.
#现在就配置好记得更新文件,关闭防火墙。
zkServer.sh start 启动
zkServer.sh status 状态
zkServer.sh start-foreground 查看运行过程
#启动客户端:
bin/zkCli.sh -server localhost:4180 (这个是自定义端口)
./zkCli.sh -server localhost:2181
# java 操作zookeeper 这个包中的是可以操作的 com.liupei.zookeeper.other;
相关文章
- zookeeper命令整理
- centos7 zookeeper集群的搭建
- 学习Docker容器网络模型 - 搭建分布式Zookeeper集群
- zookeeper快照清理
- MAC安装单机zookeeper
- ZooKeeper完全分布式安装与配置
- hbase和zookeeper的安装和部署
- Zookeeper的功能以及工作原理
- ZooKeeper 在阿里巴巴的服务形态演进
- Zookeeper,也要接触起来啦
- Dubbo+zookeeper构建高可用分布式集群(一)-单机部署
- zookeeper 安装 配置集群
- zookeeper动态添加/删除集群中实例(zookeeper 3.6)
- Eureka 与Zookeeper 的区别,Eureka相较于Zookeeper好在哪?
- ZooKeeper在HBase集群中的作用
- Dcoker搭建zookeeper集群操作
- ZooKeeper启动报错 JAVA_HOME is incorrectly set
- Zookeeper一致性协议原理Zab
- 【云原生 | Kubernetes 系列】--- Zookeeper集群安装手册
- k8s 部署zookeeper-kafka集群 —— 筑梦之路
- zookeeper+kafka集群安装之中的一个
- 安装高可用spark集群--多个Master,配置zookeeper
- zookeeper集群安装
- ZooKeeper集群“脑裂”
- Zookeeper 分布式安装
- Zookeeper(7):ZooKeeper的分布式锁案例
- Apache Zookeeper的安装和配置
- zookeeper cli