(1) Zookeeper 在 Hadoop 集群中的作用
Zookeeper 是分布式管理协作框架,Zookeeper 集群用来保证 Hadoop 集群的高可用,(高可用的含义是:集群中就算有一部分服务器宕机,也能保证正常地对外提供服务。)

(2) Zookeeper 保证高可用的原理
Zookeeper 集群能够保证 NameNode 服务高可用的原理是:Hadoop 集群中有两个 NameNode 服务,两个NameNode 都定时地给 Zookeeper 发送心跳,告诉 Zookeeper 我还活着,可以提供服务,单某一个时间只有一个是 Action 状态,另外一个是 Standby 状态,一旦 Zookeeper 检测不到 Action NameNode 发送来的心跳后,就切换到 Standby 状态的 NameNode 上,将它设置为 Action 状态,所以集群中总有一个可
用的 NameNode,达到了 NameNode 的高可用目的。

(3) Zookeeper 的选举机制
Zookeeper 集群也能保证自身的高可用,保证自身高可用的原理是,Zookeeper 集群中的各个机器分为Leader 和 Follower 两个角色,写入数据时,要先写入 Leader,Leader 同意写入后,再通知 Follower写入。客户端读取数时,因为数据都是一样的,可以从任意一台机器上读取数据。这里 Leader 角色就存在单点故障的隐患,高可用就是解决单点故障隐患的。Zookeeper 从机制上解决了Leader 的单点故障问题,Leader 是哪一台机器是不固定的,Leader 是选举出来的。选举流程是,集群中任何一台机器发现集群中没有 Leader 时,
就推荐自己为 Leader,其他机器来同意,当超过一半数的机器同意它为 Leader 时,选举结束,所以 Zookeeper 集群中的机器数据必须是奇数。这样就算当Leader 机器宕机后,会很快选举出新的 Leader,保证了 Zookeeper 集群本身的高可用。

(4) 写入高可用
集群中的写入操作都是先通知 Leader,Leader 再通知 Follower 写入,实际上当超过一半的机器写入成功后,就认为写入成功了,所以就算有些机器宕机,写入也是成功的。

(5) 读取高可用
zookeeperk 客户端读取数据时,可以读取集群中的任何一个机器。所以部分机器的宕机并不影响读取。zookeeper 服务器必须是奇数台,因为 zookeeper 有选举制度,角色有:领导者、跟随者、观察者,选举的目的是保证集群中数据的一致性。

文章可以转载,必须以链接形式标明出处。
本文转自 张冲andy 博客园博客,原文链接:  http://www.cnblogs.com/andy6/p/7354122.html ,如需转载请自行联系原作者

hadoop之 Zookeeper 分布式应用程序协调服务相关推荐

  1. hadoop之 Zookeeper 分布式应用程序协调服务

    (1) Zookeeper 在 Hadoop 集群中的作用 Zookeeper 是分布式管理协作框架,Zookeeper 集群用来保证 Hadoop 集群的高可用,(高可用的含义是:集群中就算有一部分 ...

  2. zookeeper分布式应用程序协调服务

    ZooKeeper是一个分布式的应用程序协调服务 ZooKeeper是Hadoop和Hbase的重要组件,Hbase和ZooKeeper之间具有强依赖的关系. ZooKeeper为分布式应用提供一致性 ...

  3. Zookeeper 教程:Zookeeper作为Hadoop和Hbase的重要组件,为分布式应用程序协调服务

    目录 Zookeeper 教程 适用人群 学习前提 Zookeeper 概述 分布式应用 分布式应用的优点 分布式应用的挑战 什么是Apache ZooKeeper? ZooKeeper的好处 Zoo ...

  4. Zookeeper: 一个分布式应用程序协调服务

    Zookeeper: A Service for Coordinating Processes of Distributed Applications A Scalable,reliable,robu ...

  5. ZooKeeper分布式应用程序的分布式协调服务:概述,入门,发布版本

    ZooKeeper概述适用于客户端开发人员,管理员和贡献者的技术概述文档 概述 -ZooKeeper的鸟瞰图,包括设计概念和体系结构 入门 -教程风格的指南,供开发人员安装,运行和编程到ZooKeep ...

  6. 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

    引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...

  7. 搭建第一个Dubbo分布式应用程序

    一.了解分布式应用 什么是分布式应用?在谈谈这个之前我们先说一下与它对立的就是集中式应用,集中式应用就是在一个应用中包含了所有的应用资源,这样做有很大的坏处,项目会变得更繁重,维护麻烦,而且不便于二次 ...

  8. Zookeeper分布式应用协调软件的核心概念以及部署

    文章目录 1.Zookeeper分布式协调软件核心概念 1.1.什么是Zookeeper 1.2.Zookeeper的核心功能 2.部署Zookeeper单节点模式 2.1.安装JAVA环境 2.2. ...

  9. Hadoop生态圈-Zookeeper的工作原理分析

    Hadoop生态圈-Zookeeper的工作原理分析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   无论是是Kafka集群,还是producer和consumer都依赖于Zoo ...

最新文章

  1. 异步方法顺序调用问题
  2. mysql回表_到底什么情况下mysql innodb会发生回表操作?
  3. 工资8000与80000的区别:这个能力值得你重视!
  4. 4.7地铁查询开发进度
  5. React开发(283):控制文件不会被git追踪
  6. 在VC++中使用Tab Control控件
  7. docker 安全性_未来的Docker安全性
  8. bat 两个文本字符替换_Excel中最全最实用的文本函数公式大全
  9. MacOS磁盘工具:如何将“校验和..“添加到磁盘映像
  10. 计算机的doc命令怎么学,cmd命令提示符大全:想成为电脑高手必学CMD命令大全
  11. 按键精灵q语言连接mysql_【按键精灵8】Q语言介绍
  12. java发送lrc文件格式_lrc歌词文件格式
  13. SSD固态硬盘特性术语bit位设置
  14. ASP.NET Core 解决控制台输出日志内容前面[40m等乱码字符
  15. SRM 683 div1 hard
  16. 打印101~150之间的质数
  17. 离散数学-10.1群
  18. OpenCV-Python实战(22)——使用Keras和Flask在Web端部署图像识别应用
  19. 参考 | Windows安装cython-bbox
  20. 一次脑残的记录: Linux 中实时任务调度与优先级

热门文章

  1. 事件处理介绍(简要学习笔记十七)
  2. unity中静态变量的使用
  3. 表的顺序结构---重写Arraylist类
  4. 智能算法浅介----模拟退火,遗传算法,禁忌搜索,神经网络等
  5. HDU 4301 Divide Chocolate
  6. 链表的翻转(迭代法 递归法)
  7. JVM判断对象是否存活
  8. Halcon 基本算子释义
  9. springboot~读取自定义配置项
  10. 错误代码: 1066 Not unique table/alias: #39;c#39;