好程序员大数据培训之ZooKeeper应用-解决分布式系统单点故障

大数据课程涵盖Java、spark、Hadoop等内容,而不是Java中涵盖大数据,如今是大数据的时代,学习大数据课程以前必须先了解大数据课程大纲,不然很容易学到假的大数据课程。程序员

  今天小编给你们分享一下:ZooKeeper应用--解决分布式系统单点故障网络

  1.单点故障问题分布式

  什么是分布式系统中的单点故障:一般分布式系统采用主从模式,就是一个主控机链接多个处理节点。主节点负责分发任务,从节点负责处理任务,当咱们的主节点发生故障时,那么整个系统就都瘫痪了,那么咱们把这种故障叫做单点故障。以下图oop

 

 

  传统方式是采用一个备用节点,这个备用节点按期给当前主节点发送ping包,主节点收到ping包之后向备用节点发送回复Ack,当备用节点收到回复的时候就会认为当前主节点还活着,让他继续提供服务。以下图所示:学习

 

  可是这种方式就是有一个隐患,就是网络问题,来看一网络问题会形成什么后果大数据

 

  也就是说咱们的主节点的并无挂,只是在回复的时候网络发生故障,这样咱们的备用节点一样收不到回复,就会认为主节点挂了,而后备用节点将他的Master实例启动起来,这样咱们的分布式系统当中就有了两个主节点也就是---双Master, 出现双Master之后咱们的从节点就会将它所作的事一部分汇报给了主节点,一部分汇报给了备用节点,这样服务就全乱了。为了防止出现这种状况,咱们引入了 ZooKeeper,它虽然不能避免网络故障,但它可以保证每时每刻只有一个Master。spa

  2.ZooKeeper解决方案进程

  在引入了Zookeeper之后,咱们启动了两个主节点,"主节点-A"和"主节点-B"他们启动之后,都向ZooKeeper去注册一个节点。咱们 假设"主节点-A"锁注册地节点是"master-00001","主节点-B"注册的节点是"master-00002",注册完之后进行选举,编号最小的节点将在选举中获胜得到锁成为主节点,也就是咱们的"主节点-A"将会得到锁成为主节点,而后"主节点-B"将被阻塞成为一个备用节点。那么,经过这 种方式就完成了对两个Master进程的调度。spark

 

  若是"主节点-A"挂了,这时候他所注册的节点将被自动删除,ZooKeeper会自动感知节点的变化,而后再次发出选举,这时候"主节点-B"将在选举中获胜,替代"主节点-A"成为主节点。ast

 

  3.Master 恢复

 

  若是主节点恢复了,他会再次向ZooKeeper注册一个节点,这时候他注册的节点将会是"master-00003",ZooKeeper会感知节点的变化再次发动选举,这时候"主节点-B"在选举中会再次获胜继续担任"主节点","主节点-A"会担任备用节点。

  好程序员大数据技术分享

相关文章
相关标签/搜索