首页 理论教育 集群Master容错部署的案例与解析

集群Master容错部署的案例与解析

时间:2023-06-25 理论教育 版权反馈
【摘要】:实现Master容错的前提条件:1)搭建一个ZooKeeper环境,用户维护管理多个Master。2)另外,当前测试时,需要在希望启动TachyonMaster进程的这个节点上,修改属性配置,然后在这个节点上启动TachyonMaster进程。

集群Master容错部署的案例与解析

作为一个M/S架构的分布式系统,普遍存在单点故障问题,在Tachyon分布式系统中,对于Master节点的单点故障也是采用ZooKeeper解决,即Tachyon的容错是基于多Master方法,通过ZooKeeper集群管理进来管理Master,负责选出一个Master作为Leader,作为Workers和Clients访问的主入口,其他Masters作为备用(Standby),使用共享的Journal来确保和Leader具有相同的文件系统元数据,并在Leader宕机时快速接手。当作为Leader的Master宕机时会自动选举出新的Leader,并且Workers和Clients也会自动连接到新的Leader上。

实现Master容错的前提条件:

1)搭建一个ZooKeeper环境,用户维护管理多个Master。

2)选择一个共享的、可靠的底层文件系统来存放Journal。

当前可以使用的底层文件系统有HDFS、Amazon S3和GlusterFS,这里选择HDFS作为底层文件系统进行案例实践。

一、环境准备

针对ZooKeeper环境,这里使用Flume提供的ZooKeeper,ZooKeeper的启动可以参考第4.3.3小节的内容处理Kafka数据源的实践准备部分。同时要确保在环境中已经安装好了Hadoop环境。

二、环境配置

1.修改配置文件conf/tachyon-env.sh,添加或修改下面三个环境变量

978-7-111-51909-6-Chapter05-58.jpg

其中:

1)JAVA_HOME为本地java安装目录。

2)Tachyon_MASTER_ADDRESS为Master对外可见的地址,这里设置为Master的host-name,即cluster04。

3)Tachyon_UNDERFS_ADDRESS为底层文件系统,这里使用HDFS,HDFS底层文件系统的配置可以参考第5.4.1小节的内容。

2.修改配置文件conf/tachyon-env.sh,添加或修改属性配置

修改前的属性配置:

修改后的属性配置:

978-7-111-51909-6-Chapter05-60.jpg

其中:

1)修改tachyon.master.journal.folder配置属性,将journal的目录放置于HDFS上。

2)增加tachyon.usezookeeper和tachyon.zookeeper.address属性配置,根据当前实际的ZooKeeper进行设置。

这里的tachyon.data.folder和tachyon.workers.folder可以保持不变。

修改完成后,需要将该配置文件拷贝到集群中的其他节点,命令如下:

978-7-111-51909-6-Chapter05-61.jpg

三、启动集群

1.启动ZooKeeper

这里选择cluster05节点,进入Kafka部署目录,输入命令:

978-7-111-51909-6-Chapter05-62.jpg

978-7-111-51909-6-Chapter05-63.jpg

其中,QuorumPeerMain进程就是启动的ZooKeeper进程。

2.重新格式化Tachyon

如果是首次修改底层存储系统为HDFS,则需要进行格式化,具体可以参考第5.4.1小节的内容。

3.启动Tachyon(www.xing528.com)

978-7-111-51909-6-Chapter05-64.jpg

查看Web Interface界面,出现如图5.18所示内容表示。

978-7-111-51909-6-Chapter05-65.jpg

图5.18 Tachyon启动后的界面

启动成功。

四、测试Master容错性

Tachyon也是一个M/S结构的框架,对应地,也会存在单点故障的问题,这里测试Tachyon提供的Master节点的单点故障的解决方案

1.启动其他Master节点

修改配置文件./conf/tachyon-env.sh,这里将cluster06作为Standby Master节点,输入命令:

978-7-111-51909-6-Chapter05-66.jpg

修改cluster06节点上配置文件中的Tachyon_MASTER_ADDRESS环境变量,具体如下:

978-7-111-51909-6-Chapter05-67.jpg

2.启动Master进程

978-7-111-51909-6-Chapter05-68.jpg

启动的Master进程TachyonWorker,就是Standby Master。

3.关闭cluster04上的Master进程

978-7-111-51909-6-Chapter05-69.jpg

查看新的Master上的Web Interface(http∶//cluster06∶19999)界面,如图5.19所示。

978-7-111-51909-6-Chapter05-70.jpg

图5.19 Tachyon切换master后的界面

4.查看Active与Standby Master的切换

切换Master的时间大概在十几秒左右,从图5.19的界面可以看到,Master节点已经成功切换到cluster06了。

需要注意的两点:

1)作为Master节点时,需要已经配置ssh无密登录到其他节点。

2)另外,当前测试时,需要在希望启动TachyonMaster进程的这个节点上,修改属性配置,然后在这个节点上启动TachyonMaster进程。修改属性配置Tachyon_MASTER_ADDRESS为其他节点的地址时,比如修改为cluster05,然后调用脚本./bin/tachyon-start.sh master启动TachyonMoster进程的话,这个修改后的属性TACHYON MASTER ADDRESS的值对应的其他节点,如cluster05,是不会启动TachyonMaster进程的,查看日志:

978-7-111-51909-6-Chapter05-71.jpg

报错信息如下:

978-7-111-51909-6-Chapter05-72.jpg

五、Tachyon容错机制的扩展

除了使用高可用(High Availability,HA)方式对Master节点进行容错外,对于具体的文件数据,Tachyon借鉴了Spark,使用血统关系(Lineage)进行容错。文件元数据中记录了文件之间的依赖关系,当文件丢失时,能够根据依赖关系进行重计算来恢复文件数据。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈