ZooKeeper之分布式环境搭建--仲裁模式与伪分布式环境搭建

这篇具有很好参考价值的文章主要介绍了ZooKeeper之分布式环境搭建--仲裁模式与伪分布式环境搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

相关知识

为了完成本关任务,你需要掌握:1.ZooKeeper单节点安装方法,2.命令行基本操作。

ZooKeeper之仲裁模式

standlone模式运行ZooKeeper,便于评估,开发,测试和学习。但是在实际生产中,使用ZooKeeper均以仲裁模式(quorum mode)运行,quorum mode具有一组ZooKeeper服务器,这一组服务器同时服务客户端的请求。具体可划分为两类:分布式模式(即多个服务器在不同计算机上)、伪分布式模式(即多个服务器在同一计算机上)。客户端与服务器之间的关系如下图所示:

ZooKeeper之分布式环境搭建--仲裁模式与伪分布式环境搭建

法定人数

quorum mode模式下,ZooKeeper复制集群中所有服务器的数据树。但是,如果让一个客户端等待每个服务器完成数据保存后再继续,那么可能导致的延迟问题将无法接受。所以,必须指定保证ZooKeeper正常提供服务的最小服务器数量。类似于公共管理领域中的法定人数(进行一项投票所需立法者的最小数量)。

一般情况下,在ZooKeeper分布式模式中,服务器数量为奇数个。例如,5个服务器中,至少有3个服务器提供服务(即法定人数),允许2个服务器崩溃,即多数原则;如果5个服务器节点,法定人数为2,在提供服务的2个服务器上进行了节点创建的操作,而在与另外3个服务器通信时发生长时间延迟,导致另外3个服务器无法发现该节点的创建,那么该节点创建操作就是非持久的。但是,如果只有4个服务器,那么需要保证3个服务器提供服务才能保证ZooKeeper的正常运行,那么,ZooKeeper容忍服务器崩溃的能力就会减弱。

Leader选举

Leader作为整个ZooKeeper集群的主节点,负责响应所有对ZooKeeper状态变更的请求和进行选举投票的发起和决议,保证服务器数据一致性。它会将每个状态更新请求进行排序和编号,以便保证整个集群内部消息处理的FIFO

服务器具有4种状态,分别是LOOKINGFOLLOWINGLEADINGOBSERVING

  • LOOKING:寻找Leader状态。当服务器处于该状态时,当前集群中没有Leader,因此需要进入Leader选举状态。

  • FOLLOWING:跟随者状态。表明当前服务器角色是Follower

  • LEADING:领导者状态。表明当前服务器角色是Leader

  • OBSERVING:观察者状态。表明当前服务器角色是ObserverObserver不参与投票和选举过程。

ZooKeeper的leader选举过程分为两种,服务器初始化启动和服务器运行期间无法和leader保持连接。选举过程如下图所示:

ZooKeeper之分布式环境搭建--仲裁模式与伪分布式环境搭建

服务器初始化启动leader选举分为以下几步:

  • 每个Server发出一个投票。投票信息包含myid(服务器编号)和ZXID(Zookeeper状态发生改变的序号),然后发给集群中其他机器。

  • 接受来自各个服务器的投票。

  • 处理投票。 优先检查ZXIDZXID大的服务器被选举为Leader。如果ZXID相同,myid较大的服务器被选举为Leader

  • 统计投票。每次投票后,服务器都会统计投票信息,判断是否已经有过半服务器接受到相同的投票信息。

  • 改变服务器状态。当确定了leader后,服务器更新当前状态,如果是Follower,则更新为FOLLOWING,如果是leader,则更新为LEADING

服务器运行期间无法和leader保持连接的leader选举分为以下几步:

  • 变更状态。非Observer首先将服务器状态变更为LOOKING,然后进入Leader选举过程。

  • 其余步骤与服务器初始化启动leader选举过程相同,这里不再赘述。

ZooKeeper伪分布式安装

在了解ZooKeeper的仲裁模式(quorum)后,下面讲解如何安装ZooKeeper的伪分布式(3个服务器节点,法定人数2)。

  • 安装ZooKeeper第1个节点,与standalone安装方法相同(且开发环境中已经安装,安装目录/opt/zookeeper-3.4.12),这里不再赘述

cd /opt/zookeeper-3.4.12
vi /opt/zookeeper-3.4.12/conf/zoo.cfg
  • zoo.cfg配置文件修改如下配置:

dataDir=/opt/zookeeper-3.4.12/tmp/data

server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
  • 其中,每一行分别是ip,通信端口,选举leader端口。

修改后配置文件如下图所示:

ZooKeeper之分布式环境搭建--仲裁模式与伪分布式环境搭建

指定myid。在配置项dataDir指定目录下,新建myid文件,并写入数字1(即第1个服务器节点),使用以下命令:

mkdir -p /opt/zookeeper-3.4.12/tmp/data/
echo 1 > /opt/zookeeper-3.4.12/tmp/data/myid
cat /opt/zookeeper-3.4.12/tmp/data/myid

ZooKeeper之分布式环境搭建--仲裁模式与伪分布式环境搭建

将ZooKeeper的安装目录复制2个副本(即第2个和第3个服务器节点,命名可根据实际情况更改),使用如下命令(可根据实际安装目录修改):

cp -r /opt/zookeeper-3.4.12 /opt/zookeeper-3.4.12-01
cp -r /opt/zookeeper-3.4.12 /opt/zookeeper-3.4.12-02
cp -r /opt/zookeeper-3.4.12 /opt/zookeeper-3.4.12-03

ZooKeeper之分布式环境搭建--仲裁模式与伪分布式环境搭建

 第一个节点修改zoo.cfg

vi /opt/zookeeper-3.4.12-01/conf/zoo.cfg 

dataDir=/opt/zookeeper-3.4.12-01/tmp/data

第二个节点修改zoo.cfg

vi /opt/zookeeper-3.4.12-02/conf/zoo.cfg 

clientPort=2182
dataDir=/opt/zookeeper-3.4.12-02/tmp/data

第二个节点添加myid文件

echo 2 > /opt/zookeeper-3.4.12-02/tmp/data/myid
cat /opt/zookeeper-3.4.12-02/tmp/data/myid

ZooKeeper之分布式环境搭建--仲裁模式与伪分布式环境搭建

第三个节点 修改zoo.cfg

vi /opt/zookeeper-3.4.12-03/conf/zoo.cfg 

clientPort=2183
dataDir=/opt/zookeeper-3.4.12-03/tmp/data

 第三个节点添加myid文件

echo 3 > /opt/zookeeper-3.4.12-03/tmp/data/myid
cat /opt/zookeeper-3.4.12-03/tmp/data/myid

ZooKeeper之分布式环境搭建--仲裁模式与伪分布式环境搭建

分别三个启动节点

/opt/zookeeper-3.4.12-01/bin/zkServer.sh start
/opt/zookeeper-3.4.12-02/bin/zkServer.sh start
/opt/zookeeper-3.4.12-03/bin/zkServer.sh start

ZooKeeper之分布式环境搭建--仲裁模式与伪分布式环境搭建

利用jps命令查看当前进程,如下图所示,则伪分布式安装成功

ZooKeeper之分布式环境搭建--仲裁模式与伪分布式环境搭建文章来源地址https://www.toymoban.com/news/detail-445862.html

到了这里,关于ZooKeeper之分布式环境搭建--仲裁模式与伪分布式环境搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【云计算平台】Hadoop全分布式模式环境搭建

    此前搭建了hadoop的单机模式与伪分布式模式: 单机模式部署 伪分布式模式部署 中间拖得有点久了,今天索性做个了结,把hadoop的全分布式模式部署的操作也简单地记录一下,算是一个系统性的学习吧。 伪分布式模式是学习阶段最常用的模式,它可以将进程都运行在同一台机

    2023年04月08日
    浏览(34)
  • Hadoop(伪分布式)+Spark(local模式)搭建Hadoop和Spark组合环境

    环境 使用 Ubuntu 14.04 64位 作为系统环境(Ubuntu 12.04,Ubuntu16.04 也行,32位、64位均可),请自行安装系统。 Hadoop版本 : Hadoop 2.7.4 创建hadoop用户 如果你安装 Ubuntu 的时候不是用的 \\\"hadoop\\\" 用户,那么需要增加一个名为 hadoop 的用户。 首先按 ctrl+alt+t 打开终端窗口,输入如下命令创

    2023年04月08日
    浏览(56)
  • 分布式服务框架_Zookeeper--管理分布式环境中的数据

    安装和配置详解 本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网   http://hadoop.apache.org/zookeeper/ 来获取, Zookeeper 的安装非常简单,下面将从单机模式和集群模式两个方面介绍 Zookeeper 的安装和配置。 单机模式

    2024年02月12日
    浏览(29)
  • Zookeeper 伪分布式集群搭建详细步骤

    在同一台服务器上,部署一个 3 个 ZooKeeper 节点组成的集群,这样的集群叫伪分布式集 群,而如果集群中的 3 个节点分别部署在 3 个服务器上,那么这种集群就叫真正的分布式 集群。 这里,记录一下搭建一个 3 节点的伪分布式集群的过程,真正的分布式集群的搭建过程和 伪

    2024年02月08日
    浏览(32)
  • 搭建Zookeeper集群:三台服务器,一场分布式之舞

    欢迎来到我的博客,代码的世界里,每一行都是一个故事 在分布式系统的舞台上,Zookeeper是一位不可或缺的重要角色。如何搭建一个稳定、高性能的Zookeeper集群,成为每位系统管理员和开发者的必修课。让我们一同踏上这场集群之旅,揭秘三台服务器背后的Zookeeper配置细节,

    2024年04月28日
    浏览(36)
  • Linux-一篇文章,速通Hadoop集群之伪分布式,完全分布式,高可用搭建(附zookeeper,jdk介绍与安装)。

    文章较长,附目录,此次安装是在VM虚拟环境下进行。文章第一节主要是介绍Hadoop与Hadoop生态圈并了解Hadoop三种集群的区别,第二节和大家一起下载,配置Linux三种集群以及大数据相关所需的jdk,zookeeper,只需安装配置的朋友可以直接跳到文章第二节。同时,希望我的文章能帮

    2024年03月19日
    浏览(32)
  • Spring Boot进阶(89):Spring Boot和Zookeeper搭建分布式系统,提高系统可靠性

      在当今信息化时代,互联网公司在面对海量访问请求时往往需要采用分布式系统来提高系统的可扩展性和可靠性。分布式系统具有多节点、相互协作的特性,不仅可以提高系统的吞吐量,而且还能在某个节点出现故障时自动切换到其他节点,以保证系统的可靠性。   本

    2024年02月05日
    浏览(32)
  • (大数据开发随笔9)Hadoop 3.3.x分布式环境部署——全分布式模式

    分布式文件系统中,HDFS相关的守护进程也分布在不同的机器上,如: NameNode守护进程,尽可能单独部署在一台硬件性能较好的机器中 其他的每台机器上都会部署一个DataNode进程,一般的硬件环境即可 SecondaryNameNode守护进程最好不要和NameNode在同一台机器上 守护进程布局 Name

    2023年04月16日
    浏览(36)
  • HBase 伪分布式环境搭建 - 头歌

    mkdir /app cd /opt tar -zxvf hbase-2.1.1-bin.tar.gz -C /app cd /app cd hbase-2.1.1 cd conf echo $JAVA_HOME /usr/lib/jvm/jdk1.8.0_111 vim hbase-env.sh 进入文件,找到下图中红色框框内的路径,将#去掉,把=号后面的路径改成/usr/lib/jvm/jdk1.8.0_111。注意:记得先按A,才能改。 按esc键,输入  :wq  ,回车。 vim hb

    2024年04月28日
    浏览(26)
  • zookeeper搭建分布式集群启动失败(Error contacting service. It is probably not running.)

    1.启动zookeeper后查看状态 /bin/zkServer.sh status 发现报错 Error contacting service. It is probably not running. 2.查看日志 zookeeper-root-server-zookeeper01.out 发现报了一拒绝链接java.net.ConnectException: 拒绝连接 (Connection refused) 方法1: 将配置文件 zoo.cfg 中节点对应机器的地址改为:0.0.0.0 修改完再此

    2024年02月06日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包