zl程序教程

您现在的位置是:首页 >  大数据

当前栏目

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;