hadoop之 Zookeeper 分布式应用程序协调服务
(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 有选举制度,角色有:领导者、跟随者、观察者,选举的目的是保证集群中数据的一致性。
hadoop之 Zookeeper 分布式应用程序协调服务的更多相关文章
- ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...
- 详解分布式应用程序协调服务Zookeeper
主从结构:HDFS.Yarn.HBase.storm.spark.zookeeper都存在单点故障问题 hadoop1.x没有解决方案 hadoop2.x利用zookeeper实现HA zookeep ...
- 分布式应用程序协调服务 ZooKeeper
1.简介: ZooKeeper 是一个分布的.开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题.统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等,简化分布式应用协调 ...
- zookeeper--为分布式应用提供协调服务
1.概述 zookeeper是一个开源的.分布式的.为分布式应用提供协调服务的Apache项目 zookeeper的工作机制 zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服 ...
- ZooKeeper -- 分布式开源协调服务
ZooKeeper是一个为分布式应用所设计的开源协调服务,适用于大型的分布式系统,可以提供统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等服务.ZooKeeper支持Java和C两种编程 ...
- Zookeeper-5分钟快速掌握分布式应用程序协调服
一.Zookeeper 安装 1.zookeeper支持brew安装. ➜ ~ brew info zookeeper zookeeper: stable (bottled), HEAD Centra ...
- 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解
引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...
- HADOOP+SPARK+ZOOKEEPER+HBASE+HIVE集群搭建(转)
原文地址:https://www.cnblogs.com/hanzhi/articles/8794984.html 目录 引言 目录 一环境选择 1集群机器安装图 2配置说明 3下载地址 二集群的相关 ...
- 分布式协调服务Zookeeper
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...
随机推荐
- LeetCode——single-number系列
LeetCode--single-number系列 Question 1 Given an array of integers, every element appears twice except ...
- java分页的实现(后台工具类和前台jsp页面)
1.首先,新建一个类Page.java public class Page implements Serializable { private static final long serialVers ...
- Android解决软键盘弹出将布局顶到上面
有时候我们在下面的布局是一个RadioGroup,然后当页面中的EditText获得焦点的时候,会将地步的RadioGroup顶起来,这时候我们只需要在AndroidMainfest中RadioGro ...
- vue-cli 一分钟搭建自己的vue项目
创建项目 1.安装全局vue-cli npm install vue-cli -g 2.生成项目模板(my_projuct为项目名称) vue init webpack my_projuct 3.进入 ...
- BZOJ 3196 Tyvj 1730 二逼平衡树:线段树套splay
传送门 题意 给你一个长度为 $ n $ 有序数列 $ a $ ,进行 $ m $ 次操作,操作有如下几种: 查询 $ k $ 在区间 $ [l,r] $ 内的排名 查询区间 $ [l,r] $ 内排 ...
- C++程序设计之提高效率
设计C++程序时,总结起来可以从如下几点提高效率: 1.并发 2.异步 3.缓存
- tomcat学习篇
要求: 为Apache HTTP Server服务器添加JSP网页支持. 能够访问Tomcat容器的Web管理界面,以便管理各种JSP.Servelet应用. u 知识提示 在各种企业级网站应用系统中 ...
- 【scala】应用程序和App特性
一.应用程序 要运行一个Scala对象,必须提供一个独立对象的名称.这个独立对象需要包含一个main方法,该方法接受一个Array[String]作为参数,结果类型为Unit. import Chec ...
- YYMMDD转YYYY-MM-DD
date.replace(/(\d{4})(\d{2})(\d{2})/g,'$1-$2-$3');
- 关于vsftpd.conf配置
vsftpd配置文件详解 转自http://yuanbin.blog.51cto.com/363003/108262/ 1.默认配置: 1>允许匿名用户和本地用户登陆. ano ...