博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hadoop之 Zookeeper 分布式应用程序协调服务
阅读量:2492 次
发布时间:2019-05-11

本文共 1260 字,大约阅读时间需要 4 分钟。

(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 有选举制度,角色有:领导者、跟随者、观察者,选举的目的是保证集群中数据的一致性。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31383567/viewspace-2143460/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31383567/viewspace-2143460/

你可能感兴趣的文章
debian 9 安装后的配置,debian 9 开发环境。
查看>>
数据结构——各排序算法的比较
查看>>
IrregularGridCollectionView处理不定宽度的标签cell
查看>>
sql查询
查看>>
缓存初解(五)---SpringMVC基于注解的缓存配置--web应用实例
查看>>
数据库设计三大范式【转载】
查看>>
隐藏与禁用硬盘分区——利用工具或注册表
查看>>
aggregations 详解1(概述)
查看>>
锁优化
查看>>
[deviceone开发]-do_SlideListView的简单示例
查看>>
动态规划(五) 最大连续子序列和(Maximum Continuous Subsequence Sum)
查看>>
Java 1.8 HashMap源码探究
查看>>
navicat的安装
查看>>
Jackson学习笔记
查看>>
剑指offer——最小的K个数和数组中第K大的元素
查看>>
TensorFlow 官方文档中文版
查看>>
Codeforces Round #149 (Div. 2)【AK】
查看>>
SQL server 2008数据库的备份与还原、分离(转)
查看>>
LiveQing直播点播存储流媒体服务-服务器并发性能及消耗带宽计算参考
查看>>
我会永远永远的爱你,直到你不爱我的那一天
查看>>