2-zookeeper、ha
1、zookeeper
①背景:
Zookeeper 最早起源于雅虎研究院的一个研究小组。在当时,研究人员发现,在雅虎内部很多大型系统基本都需要依赖一个类似的系统来进行分布式协调,
但是这些系统往往都存在分布式单点问题。所以,
雅虎的开发人员就试图开发一个通用的无单点问题的分布式协调框架,以便让开发人员将精力集中在处理业务逻辑上。
①定义:Zookeeper是一个开源的分布式协调框架(主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源)
③角色:
1)领导者(Leader) : 处理所有请求,为客户的提供读和写服务
2)跟随者(Follower) : 只提供读服务,有机会通过选举成为leader
3)观察者(Observer): 只提供读服务 ,不参与投票,没机会成为leader
注:由角色可以看出,即便是你对Follower进行写操作,但是它不会写,而是会将请求转发给leader,待leader写成功之后,再同步给其余角色。
④特点:
1) Zookeeper的集群中必须保证半数以上的节点存活才能对外提供服务器
2) Zookeeper在更新数据的时候存在一个特性:原子性 (数据要么所有角色全部更新成功,要么全部失败)
⑤Master选举:
解决问题:单点故障(几个节点向Zookeeper进行注册,Zookeeper通过选举,得出领导者,如果领导者出现故障,重新选举)
选举规则:集群(5个)启动时,当启动到第3个时(过半数),找到这三个节点的myid,id最大的那个就是领导者,其余启动的都是跟随者。
第二次选举规则:第二次选举的时候由于已经存在了数据,则根据节点中数据版本最新的为主。
2、HA
1、QJM
Qurom Journal Manager:解决单点故障问题,即引入双NameNode架构,同时借助共享存储系统来进行元数据的同步。
RPC: 远程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
Qurom :Zookeeper分布式协调服务。
Journal Node:存储编辑日志,多个Journal Node通过Zookeeper实现共享存储系统。
Standby NameNode:备份状态的NN
Active NameNode: 启动状态的NN
ZKFC(单独进程,每个NN都有):
a.监控NN的健康状态
b.向ZK定期发送心跳,使自己可以被选举,当自己被ZK选为主时,active FailoverController通过RPC调用使相应的NN转换为active
c.自动备援
2、架构原理:
先找到三个节点(Journal Node),然后通过Zookeeper的Qurom(分布式协调服务),实现Journal Node上存储的编辑日志同步。
以上就是一个共享存储系统,而名称集群就是共享存储系统所覆盖的几个节点,每个NN都有一个ZKFC,用以解决单点故障。
运行过程:
①client向Active NN提交操作,先向Active NN中的编辑日志中写。
②如果成功,Active NN会修改元数据,并且Active NN向所有Journal Node请求写编辑日志,只要将请求发给了其中任意一台机器,则表示成功。 (由角色的定义可以看出)
③Standby NameNode 会一直监控JournalNode节点上的编辑日志,当发现编辑日志有所改变后会读取这些编辑日志并合并到自己的namespace中。
④为了尽量减少故障切换所消耗的时间,DataNode会定时向所有NameNode节点发送块的位置信息和心跳
注:外部访问hdfs变成了名称集群(此处命名MyNNS)
注:Journal Node + Qurom <==> 共享存储系统
2-zookeeper、ha的更多相关文章
- ActiveMQ笔记(2):基于ZooKeeper的HA方案
activemq官网给出了3种master/slave的HA方案,详见:http://activemq.apache.org/masterslave.html,基于共享文件目录,db,zookeepe ...
- Spark部署三种方式介绍:YARN模式、Standalone模式、HA模式
参考自:Spark部署三种方式介绍:YARN模式.Standalone模式.HA模式http://www.aboutyun.com/forum.php?mod=viewthread&tid=7 ...
- 2-Zookeeper、HA安装
1.Zookeeper安装 1.解压 zookeeper 到安装目录中/opt/app/zookeeper 中. 2.在安装目录下创建data和logs两个目录用于存储数据和日志: cd /opt/a ...
- hiveserver2和zookeeper的HA搭建(转)
最近公司新项目申请资源,虚拟机资源打开时候使用source login.sh的脚本来进行登录注册,好奇心驱使下看了看里面的shell脚本,使用到了hiveserver2的zookeeper连接,百度一 ...
- (转)Dubbo与Zookeeper、SpringMVC整合和使用
原文地址: https://my.oschina.net/zhengweishan/blog/693163 Dubbo与Zookeeper.SpringMVC整合和使用 osc码云托管地址:http: ...
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使 ...
- 【转】Dubbo_与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
原文链接:http://blog.csdn.net/congcong68/article/details/41113239 互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服 ...
- 160906、Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使 ...
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)转
互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使 ...
随机推荐
- excel中如何把文本转换为数字
今天被一个小问题难住了,本人用自己开发的成绩分析软件统计学校成绩,数据由excel导入,给我的数据全部是文本型,其实也不难,主要是我的软件是早期开发的,没有考虑这个问题,结果这个问题被美女老师解决了 ...
- 版本控制git第一篇
一.git的下载与安装 参考:https://blog.51cto.com/wangfeng7399/2352524 Git 是一个开源的分布式版本控制软件,用以有效.高速的处理从很小到非常大的项目版 ...
- R语言安装xlsx包,读入excel表格
开学的时候,男神给了数据(.xlsx格式)让用R语言分析分析,作为编程小白,读了一天都没读近R,更别提如何分析了. 现在小伙伴们都喜欢读txt 和csv格式的,好多xlsx的表格读不进R,将xlsx格 ...
- 虚拟机模拟SSD用于Ceph测试
一.简单介绍 在一些使用场景中,我们需要使用SSD进行测试,如Ceph的分级,OpenStack多种云硬盘配置.在物理设备受限的情况下,我们可以采用模拟SSD的方式进行 二.SSD的标识 在实际的使用 ...
- 基础、hibernate目前应用的对比
* ***************************hibernate** ***************************** 一.导包 mysql二.在默认src下创建hibern ...
- 0913_Python初识及变量
1.Python3不需加utf-8,Python必须加utf-82.单行注释用#,多行注释用""" """3.变量:只能由字母.数字.下划线 ...
- chmod语法
chmod命令详细用法 指令名称 : chmod 使用权限 : 所有使用者 使用方式 : chmod [-cfvR] [--help] [--version] mode file... 说明 : ...
- ArcGIS 按多边形区域统计栅格影像的一些信息
在使用ArcGIS对栅格影像进行分析时,难免要进行一些统计类的分析.如统计框选区域的像素的个数,面积.均值等内容. 下面给出使用“Spatial Analyst Tools -- > Zonal ...
- Linux 挂载windows目录
1.默认情况下,Linux服务器会装有samba-client,但是没有装samba-server.但是访问Windows系统共享,安装有samba-client就可以了. [root@test ~] ...
- Linux搭建禅道
1.开源版安装包下载(64位的下载64位,32位的选中32位) [root@iZbp~]# wget http://dl.cnezsoft.com/zentao/9.0.1/ZenTaoPMS.9.0 ...