为什么需要Zookeeper?
为了防止集群的主NameNode挂掉,再另创建一个辅NameNode,两个保持数据同步,一旦主NameNode挂掉,集群就会把辅NameNode节点作为整个集群的主NameNode,而在这之间就需要用到Zookeeper来协调,帮助辅NameNode成为整个集群的主NameNode。

在这里Zookeeper是实现的master选举机制完成这一过程,选举机制分两种:
    第一种:谁先创建master临时节点,谁就是master,当一个master挂掉了,master节点就消失了,别的节点就会监听到,就会继续去创建master临时节点,以此类推,利用Zookeeper的两个特点(一个节点只能成功创建一次、利用监听的机制)
    第二种:在master下面创建临时有序节点,那个节点最小,那个就是master,节点挂掉,下面那个临时节点就会监听到上面的临时节点挂掉了,从而取代成为master,以此类推,(利用Zookeeper创建节点临时有序的特性)

第二种master选举机制利用Curator的API写:LeaderSelectionApp.java
打包上传到各个节点运行:
java -cp zookeeper-course-1.0-SNAPSHOT-jar-with-dependencies.jar com.twq.zk.usage.LeaderSelectionApp
master、slave1、slave2轮流成为master
两种选举机制示意图:
第一种:

第二种:

来源:https://www.icode9.com/content-4-125193.html

Master选举原理相关推荐

  1. Zookeeper系列五:Master选举、ZK高级特性:基本模型

    一.Master选举 1. master选举原理: 有多个master,每次只能有一个master负责主要的工作,其他的master作为备份,同时对负责工作的master进行监听,一旦负责工作的mas ...

  2. 使用zk可以实现Master选举,实现原理是什么?

    随着分布式应用的的不断深入,需要对集群管理逐步透明化监控集群和作业状态,可以充分利ZK的独有特性. 提示: 1.节点列表变更watcher监听 2.其它主机watcher回调执行 答案: 使用 zk ...

  3. VRRP浮动路由(浮动路由原理,了解HSRP路由选举原理,实验过程与总结)

    文章目录 前言 单一链路存在的问题 HSRP是思科的私有协议 HSRP (热备份路由选择协议)介绍 VRRP浮动路由原理 Master路由器选举原理 浮动路由原理 实验详解 实验目的 实验过程 主机设 ...

  4. Zookeeper实现Master选举(哨兵机制)

    master选举使用场景及结构 现在很多时候我们的服务需要7*24小时工作,假如一台机器挂了,我们希望能有其它机器顶替它继续工作.此类问题现在多采用master-salve模式,也就是常说的主从模式, ...

  5. VRRP——Master选举

    Master路由器选举原理 在一个VRRP组中,正常情况下只能存在一台Master路由器.VRRP根据优先级和IP地址来决定哪台路由器充当Master. VRRP优先级的范围是0~255,优先级的值越 ...

  6. 利用Zookeeper实现 - Master选举

    原文始发于:利用Zookeeper实现 - Master选举 Zookeeper 是一个高可用的分布式数据管理与协调框架,基于ZAB协议算法的实现,该框架能够很好的保证分布式环境中数据的一致性.Zoo ...

  7. es怎么实现master选举

    Elasticsearch分布式一致性原理剖析(一)-节点篇 王怀远 阿里云分布式NoSQL开发 23 人赞了该文章 前言 "Elasticsearch分布式一致性原理剖析"系列将 ...

  8. Redis集群选举原理与脑裂问题

    系列文章目录 第一节 Redis的安装 第二节 Redis的五种数据结构(String.Hash.List.Set.ZSet) 第三节 Redis的持久化方式 第四节 Redis主从架构 第五节 Re ...

  9. ZooKeeper场景实践:(6)集群监控和Master选举

    1. 集群机器监控 这通经常使用于那种对集群中机器状态,机器在线率有较高要求的场景,可以高速对集群中机器变化作出响应.这种场景中,往往有一个监控系统,实时检測集群机器是否存活. 利用ZooKeeper ...

最新文章

  1. Nature综述——真菌的多样性:真菌的高通量测序及鉴定
  2. 深度全解卷积神经网络(附论文)
  3. 【算法】深度学习神经网络都调哪些参数?
  4. shell 数组操作
  5. linux PCI驱动调用字符设备驱动方式
  6. 闭包造成的内存泄露怎么解决?
  7. 算法笔记 --- 排列组合
  8. 使用DOM4J解析XML及采用Schema校验的方法
  9. 起泡排序验证性实验(2)
  10. java进程cpu使用率高_什么会导致Java应用程序的CPU使用率飙升?
  11. LNMP一键安装脚本(执行后只需等待即可)
  12. iOS10-iOS13全系统越狱来了,A5-A11芯片全部能越狱工具来了
  13. 清理数据 python_使用python的数据清理技术
  14. 几个炫酷且实用的CSS动画效果
  15. VisualSVN提交叮叮机器人通知
  16. 基于OpenCV 的美颜相机推送直播流
  17. 老罗抖音推荐EcoFlow正浩户外电源,小众科技为何被选中?
  18. 3D模型文件--STL,OBJ,3DS
  19. 易编远航第三期第3套 穿越火线CF辅助开发实战
  20. python编程技能提升计划

热门文章

  1. java和python哪个编程好找工作_学编程选Python还是Java?就业发展哪个好??
  2. linux du -h按文件大小,【玩转linux命令】du党
  3. matlab的svm工具箱的安装
  4. 通过Excel访问Kylin
  5. 分布式ID生成器(来源:架构师之路,2017-06-25 58沈剑 架构师之路)
  6. 学习笔记:Zookeeper 应用案例(上下线动态感知)
  7. 最全的IO操作知识总结
  8. 处理字符串_11_判断一个字符是否是数字
  9. 服务器配置文件salt,saltstack 配置文件详解
  10. MFC中简单绘图几种方式