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-001 1 follower
zookeeper-3.7.1-002 2 Leader
zookeeper-3.7.1-003 3 observer
二.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

zookeeper搭建教程(单机搭建)伪分布模式_第1张图片

查看集群状态

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

bin/zkServer status

zookeeper搭建教程(单机搭建)伪分布模式_第2张图片

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

四.zookeeper关闭

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

bin/zkServer.sh stop

zookeeper搭建教程(单机搭建)伪分布模式_第3张图片

完结~~~~

你可能感兴趣的:(hadoop,zookeeper,linux,分布式,hadoop)