zookeeper搭建教程(单机搭建)伪分布模式

目录

一.zookeeper简介  

二.zookeeper部署

三.zookeeper启动

四.zookeeper关闭


一.zookeeper简介  

ZooKeeper集群由多个服务器组成,每个服务器在ZooKeeper集群中扮演着不同的角色,包括Leader、Follower和Observer。

  Leader是ZooKeeper集群的核心,每个ZooKeeper集群中只能有一个Leader,它主要用于处理客户端发送的事务请求,并将事务请求广播到所有Follower,保证处理事务请求的顺序一致性。

  Follower可以看作是Leader的跟随着,每个ZooKeeper集群中可以包含多个Follower,作用主要有以下4点: 处理客户端发送的非事务请求。 将客户端发送的事务请求转发给Leader。 参与事务请求投票。 参与Leader选举投票  

  Observer可以看作是Leader的观察者,每个ZooKeeper集群中可以包含多个Observer,主要负责同步Leader的数据,处理客户端发送的非事务请求,并将事务请求转发给Leader。通常用于在不影响集群事务处理能力的前提下,提升集群的非事务处理能力。

  伪分布式模式是指在单台服务器中部署 ZooKeeper 集群,ZooKeeper 集群中的多个 ZooKeeper 服务运行在单台服务器的不同进程中。接下来我们搭建基于centos03为服务器搭建zookeeper集群。(centos03是我的一台服务器主机名,你也可以任意选择一台主机)

结点myid备注
zookeeper-3.7.1-0011follower
zookeeper-3.7.1-0022Leader
zookeeper-3.7.1-0033observer
二.zookeeper部署

 1.下载安装包

链接:https://pan.baidu.com/s/1H1b-Xsi0vug529UaMnjDVQ?pwd=9629 
提取码:9629 

上面是zookeeper3.7.1版本的,需要的自己提。

通过xshell或者其他方式将安装包传到 /opt/software/zookeeper目录下,该目录可以自定义,用于存放压缩包。

2.创建zookeeper安装包目录

通过命令创建zookeeper目录,用户存放zookeeper

mkdir -p /opt/modules/zookeeper

该目录是用于存放zookeeper安装包的,可以自定义。

将zookeeper解压到该目录下

tar -zxvf /opt/software/apache-zookeeper-3.7.1-bin.tar.gz -C /opt/modules/zookeeper

将文件重命名

mv /opt/modules/zookeeper/apache-zookeeper-3.7.0-bin /opt/modules/zookeeper/zookeeper-3.7.0-001

通过复制安装其他两个节点,并分别重命名为002 003

cp -r /opt/modules/zookeeper/zookeeper-3.7.0-001 /opt/modules/zookeeper/zookeeper-3.7.0-002

cp -r /opt/modules/zookeeper/zookeeper-3.7.0-001 /opt/modules/zookeeper/zookeeper-3.7.0-003

3.修改配置文件

  ZooKeeper安装目录的conf目录下存放了ZooKeeper配置文件的模板文件zoo_sample.cfg,该文件包含了ZooKeeper的默认配置信息,如果需要修改ZooKeeper的默认配置,需要将模板文件zoo_sample.cfg重命名为zoo.cfg,并对zoo.cfg文件的内容进行修改。

cp zoo_sample.cfg zoo.cfg //进入到conf目录下

  由于3个ZooKeeper服务运行在同一台虚拟机中,为了避免不同ZooKeeper服务使用的数据持久化目录和端口号产生冲突,这里分别修改3个ZooKeeper安装目录的配置文件。

 在zookeeper001 结点下 在/opt/modules/zookeeper/zookeeper-3.7.1-001/conf目录,执行“vi zoo.cfg”命令编辑文件zoo.cfg修改其内容。

cd /opt/modules/zookeeper/zookeeper-3.7.1-001/conf

vi zoo.cfg

添加以下内容:

# tickTime表示服务器之间或客户端与服务器之间心跳的时间间隔,单位为毫秒
tickTime=2000
# follower与leader的初始连接心跳数
initLimit=10
# follower与leader请求和应答的最大心跳数
syncLimit=5
# 快照数据保存目录
dataDir=/opt/modules/zookeeper/data/zkdata001
# 客户端连接端口
clientPort=2181
# 服务器节点配置,格式为:
# server.${myid}=${host}:${leader和follower通信端口}:${选举端口}(observer节点最后加上:observer )
server.1=centos03:2888:3888
server.2=centos03:2889:3889
server.3=centos03:2890:3890

其中centos03为我的主机名,在配置时,要修改为自己的主机名

在zookeeper002 结点下 在/opt/modules/zookeeper/zookeeper-3.7.1-002/conf目录,执行“vi zoo.cfg”命令编辑文件zoo.cfg修改其内容。

cd /opt/modules/zookeeper/zookeeper-3.7.1-002/conf

vi zoo.cfg

添加以下内容:

# tickTime表示服务器之间或客户端与服务器之间心跳的时间间隔,单位为毫秒
tickTime=2000
# follower与leader的初始连接心跳数
initLimit=10
# follower与leader请求和应答的最大心跳数
syncLimit=5
# 快照数据保存目录
dataDir=/opt/modules/zookeeper/data/zkdata002
# 客户端连接端口
clientPort=2182
# 服务器节点配置,格式为:
# server.${myid}=${host}:${leader和follower通信端口}:${选举端口}(observer节点最后加上:observer )
server.1=centos03:2888:3888
server.2=centos03:2889:3889
server.3=centos03:2890:3890

 在zookeeper003 结点下 在/opt/modules/zookeeper/zookeeper-3.7.1-003/conf目录,执行“vi zoo.cfg”命令编辑文件zoo.cfg修改其内容。

cd /opt/modules/zookeeper/zookeeper-3.7.1-003/conf

vi zoo.cfg

添加以下内容:

# tickTime表示服务器之间或客户端与服务器之间心跳的时间间隔,单位为毫秒
tickTime=2000
# follower与leader的初始连接心跳数
initLimit=10
# follower与leader请求和应答的最大心跳数
syncLimit=5
# 快照数据保存目录
dataDir=/opt/modules/zookeeper/data/zkdata003
# 客户端连接端口
clientPort=2183
# 服务器节点配置,格式为:
# server.${myid}=${host}:${leader和follower通信端口}:${选举端口}(observer节点最后加上:observer )
server.1=centos03:2888:3888
server.2=centos03:2889:3889
server.3=centos03:2890:3890:observer

根据3个文件zoo.cfg中参数dataDir指定的值,在虚拟机Hadoop3创建对应的数据持久化目录。

zookeeper001

mkdir -p /opt/modules/zookeeper/data/zkdata001

在数据持久化目录/opt/modules/zookeeper/data/zkdata001创建myid文件并写入值1

echo 1 > /opt/modules/zookeeper/data/zkdata001/myid

 zookeeper002

mkdir -p /opt/modules/zookeeper/data/zkdata002

 在数据持久化目录/opt/modules/zookeeper/data/zkdata002创建myid文件并写入值2

echo 2 > /opt/modules/zookeeper/data/zkdata002/myid

zookeeper003

mkdir -p /opt/modules/zookeeper/data/zkdata003

 在数据持久化目录/opt/modules/zookeeper/data/zkdata003创建myid文件并写入值3

echo 3 > /opt/modules/zookeeper/data/zkdata003/myid
关于myid

myid可以称之为服务器ID,它是用户在部署ZooKeeper集群时,为每台服务器运行的ZooKeeper服务指定的编号,编号的值越大,则ZooKeeper服务被选举为Leader的权重越高。需要注意的是,用户为每个ZooKeeper服务指定的编号不能重复。

在选举主节点时还会考虑到zxid,详细的选举机制请自行查阅资料。

三.zookeeper启动

分别在三个节点的安装目录下执行

zookeeper001

cd /opt/modules/zookeeper/zookeeper-3.7.1-001
bin/zkServer.sh start

如图,则说明启动成功

 zookeeper002

cd /opt/modules/zookeeper/zookeeper-3.7.1-002
bin/zkServer.sh start

zookeeper003

cd /opt/modules/zookeeper/zookeeper-3.7.1-003
bin/zkServer.sh start

查看集群状态

分别在三个结点安装目录下执行

bin/zkServer status

到此,部署完成,可以进行集群下的操作了。

四.zookeeper关闭

分别在三个节点安装目录下执行

bin/zkServer.sh stop

完结~~~~

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十亿少男的梦421

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值