故障转移集群仲裁盘_设置 ZooKeeper 集群:1分钟就搞定的小 case

本文详细介绍了如何在Ubuntu 14.04 LTS上搭建多节点Zookeeper集群,包括配置文件设置、节点ID分配、数据目录创建等步骤。Zookeeper在Hadoop、Kafka等组件中起到关键的协调作用,用于自动故障转移和集群管理。通过Zookeeper集群,可以实现NameNode的高可用性和Kafka代理的协调。文章提供了完整的配置示例,适合想要搭建Zookeeper和理解其在分布式系统中角色的读者。
摘要由CSDN通过智能技术生成

55a9924e8970675905abe2a82eacebee.png

尽管事实上Apache Zookeeper的功能在终端客户中并没有引起人们的注意,但是它仍然是诸如Hadoop之类的热门组件的骨干,以监督自动故障转移,Kafka的代理协调,Solr,HBase,Apache S4等。

此外,Zookeeper还被广泛用于许多免费软件项目,例如AdroitLogic UltraESB、Akka、GoldenOrb(大规模图形分析)、Neo4j(图形数据库)等。此外,许多知名公司如Yahoo、Rackspace、Box、Midokura等正在将其用于运营目的。

与操作系统无关,设置Zookeeper集群没有太多复杂性。一个Zookeeper集群也称为合奏。本文已分为三个部分。此外,我添加了几行内容来与Zookeeper和Kafka进行代理,以进行代理协调,并添加Hadoop以在NameNode上实现自动故障转移。

2f56906d287f64a928a2a48819b66d15.png

点击添加图片描述(最多60个字)编辑

第一部分:我们将使用在Ubuntu 14.04 LTS之上运行的多节点集群作为操作系统。在不同操作系统上的安装不会有任何大胆的更改。Zookeeper在JAVA上运行,并假定JAVA在每个节点上的集群上已经可用。到目前为止,不支持Java 9 和10。

第二部分:本节将在集群的每个节点中累积Zookeeper的安装和配置。使用SCP将下载的tarball(apache-zookeeper-3.5.6-bin.tar.gz)复制到每个节点并提取为$ tar -xvzf apache-zookeeper-3.5.6-bin.tar.gz

4a64271b859f9757b17a10daeec7ae6a.png

点击添加图片描述(最多60个字)编辑

一旦成功提取,目录apache-zookeeper-3.5.6-bin中的内容将移至/ usr / local / zookeeper位置。确保已经在/ usr / local内部创建了具有所有访问权限(root 特权)的“ zookeeper”目录。

c1cb141f51e53541fa79f272e8e9ade5.png

点击添加图片描述(最多60个字)编辑

现在,我们必须在“ zookeeper”内部创建两个目录作为“数据”和“日志”,然后在每个服务器/系统上分配一个单独的节点ID。

c74b068b86aa0aa68261579a39abceb5.png

点击添加图片描述(最多60个字)编辑

随后,在每个系统上创建一个“ myid”文件。myid文件由仅包含该机器ID文本的一行组成。每个myid文件将包含一个与配置文件中分配的服务器编号相关的编号。id / number在集群中必须唯一,并且其值必须在1到255之间。在这里,对于集群中的所有四节点/系统,我们分别表示为1,2,3和4。

8813faae2e3ef2c749646174b2be34db.png

点击添加图片描述(最多60个字)编辑

“ / usr / local / zookeeper / data ”所有者将成为根用户。Zookeeper将进程ID和数据快照存储在该目录中。

e1ba4fec81866861f93c9de6c7c21ffc.png

点击添加图片描述(最多60个字)编辑

上面的屏幕快照显示了创建的具有唯一编号的“ myid”文件以及“ version”目录中的快照。Zookeeper服务器开始工作后,快照文件将自动生成。

要更新或插入配置参数,必须将位于“ / usr / local / zookeeper / conf ”内的默认文件zoo_sample.cfg重命名为zoo.cfg。

171845e1b06ba0ab22a04ae47a99558c.png

点击添加图片描述(最多60个字)编辑

然后,使用新的键“ dataLogDir”更新“ dataDir”和“ clientPort”键的值。由于集群中有4个节点,因此应使用以下命令更新每个节点中的zoo.cfg文件。

ed100009a1bba7da739f3c33c844d4bc.png

点击添加图片描述(最多60个字)编辑

独立的Zookeeper服务器仅有益于开发和测试目的,而不适用于生产环境。必须在生产中使用复制的多节点集群,才能以分布式方式完全利用协调服务。请牢记这一点,本文重点讨论了多节点设置。在同一应用程序中的一组服务器的复制组称为仲裁,并且在复制模式下,仲裁中的所有服务器都具有相同配置文件zoo.cfg的副本。

如上所述,应在每个服务器/节点的 zoo.cfg文件以及“ myid”中添加以下内容。

server.1=<IP Address of node 1>:2888:3888 [note:- 1 denotes the unique number available inside “myid” file of node/system 1 in the cluster similarly 2,3,4 for other systems]

server.2=<IP Address of node 2>:2888:3888

server.3=<IP Address of node 3>:2888:3888

server.4=<IP Address of node 4>:2888:3888

adf47f10ae8d201774e8a68215777460.png

点击添加图片描述(最多60个字)编辑

“ initLimit” 指示仲裁中的每个节点需要连接到领导者的时间。“ syncLimit”指定发送请求和接收确认的时间。ZooKeeper节点使用一对端口:2888和:3888分别用于跟随者节点连接到领导者节点和进行领导者选举。请参考此处以了解有关配置参数的更多信息。

第三部分:这部分用于运行和测试我们在以上部分完成的多节点Zookeeper服务器安装。我们可以使用CLI启动所有四个节点/系统中的每个Zookeeper服务器。导航到bin目录(/ usr / local / zookeeper / bin)并执行。/zkServer.sh启动。

0d52f860c7563f2da581759cb2edc98a.png

点击添加图片描述(最多60个字)编辑

此外,我们可以检查每个服务器中的日志文件,以检查每次Zookeeper服务器启动期间是否发生任何致命错误或异常。

fffc78e997ecd8e6ed47f0fe4a3ff55f.png

点击添加图片描述(最多60个字)编辑

另外,使用zkCli.sh,我们可以从其他节点/系统连接到另一个节点/服务器。

6cdb88090e02bcf6af4360d9420b15f6.png

点击添加图片描述(最多60个字)编辑

使用zkCli.sh连接其他Zookeeper服务器并在控制台上显示以下内容后,Zookeeper服务器在集群中成功运行。

dce47c43cef3ca392d671464f4eed14c.png

点击添加图片描述(最多60个字)编辑

本文未扩展其他信息,如创建子znode,znode的子级,znode元数据等,但如果有人要安装和运行Kafka集群,将很有帮助。不过,Kafka在管理其经纪人方面对Zookeeper十分尊敬,但在不久的将来,Kafka将与Zookeeper分离。

最终,我们将说明如何将Zookeeper服务器/集群与Kafka以及Hadoop多节点集群结合使用,以实现自动故障转移,并假设Hadoop集群中的所有节点均已安装并将Zookeeper配置为以上说明。

ZooKeeper节点可以与HDFS NameNode和Standby Node安装在相同的硬件上,因为ZooKeeper本身对光资源的要求很高。为了在HDFS集群中实现自动故障转移功能,必须提供Apache Zookeeper服务。

Zookeeper与多节点Hadoop集群中的NameNodes保持会话。当活动的Namenode发生故障时,由Zookeeper维护的会话将终止,并通知其他NameNodes启动故障转移过程。

ZookeerFailoverController(ZKFC)是Zookeeper客户端,用于监视和管理NameNode状态。每个NameNode也都运行ZKFC。ZKFC负责定期监视NameNode的运行状况。只需提及与Zookeeper相关的配置参数即可。文件应该使用以下内容更新core-site.xml的活动名称和备用名称节点。

<property>

<name>ha.zookeeper.quorum</name>

<value> <<IP Address/Alias name of Zookeeper Server 1>>:5181,<< IP Address/Alias name of Zookeeper Server 2>>:5181, <<IP Address/Alias name of Zookeeper Server 3>>:5181 </value>

</property>

注意:Zookeeper Sever1,Sever2,Sever3是我们上面安装和配置的Zookeeper集群中的服务器。

跳过其他配置文件,不需要Zookeeper的集群条目,但必须进行更新/更改,才能在Hadoop中启用自动故障转移。

要甚至甚至为独立设置Kafka多节点集群,必须使用Zookeeper服务器条目来管理其代理。简而言之,Kafka利用Zookeeper来管理Kafka Brokers的服务发现。

Zookeeper负责将有关拓扑更改的信息发送到Kafka集群,随后,集群中的每个节点都知道整个Kafka集群中何时加入了新代理,代理死亡,删除主题或添加主题等......

通过在上面的“ server.properties”中输入Zookeeper的服务器信息,就可以实现。“ server.properties” 文件位于安装在多节点集群上的每个Kafka实例的“ conf ”目录中。

489b3a01430a6c150f2fe543704e0b83.png

点击添加图片描述(最多60个字)编辑

eae6769874ce19f7904d91d99ccd9b2d.png

点击添加图片描述(最多60个字)编辑

总结

以上就是今天的内容了,如果对你有所帮助,希望你能够关注、点赞、转发一键三连支持一下。

需要完整学习线路和配套课堂笔记,请后台回复111。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值