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的更多相关文章

  1. ActiveMQ笔记(2):基于ZooKeeper的HA方案

    activemq官网给出了3种master/slave的HA方案,详见:http://activemq.apache.org/masterslave.html,基于共享文件目录,db,zookeepe ...

  2. Spark部署三种方式介绍:YARN模式、Standalone模式、HA模式

    参考自:Spark部署三种方式介绍:YARN模式.Standalone模式.HA模式http://www.aboutyun.com/forum.php?mod=viewthread&tid=7 ...

  3. 2-Zookeeper、HA安装

    1.Zookeeper安装 1.解压 zookeeper 到安装目录中/opt/app/zookeeper 中. 2.在安装目录下创建data和logs两个目录用于存储数据和日志: cd /opt/a ...

  4. hiveserver2和zookeeper的HA搭建(转)

    最近公司新项目申请资源,虚拟机资源打开时候使用source login.sh的脚本来进行登录注册,好奇心驱使下看了看里面的shell脚本,使用到了hiveserver2的zookeeper连接,百度一 ...

  5. (转)Dubbo与Zookeeper、SpringMVC整合和使用

    原文地址: https://my.oschina.net/zhengweishan/blog/693163 Dubbo与Zookeeper.SpringMVC整合和使用 osc码云托管地址:http: ...

  6. Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)

    互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使 ...

  7. 【转】Dubbo_与Zookeeper、SpringMVC整合和使用(负载均衡、容错)

    原文链接:http://blog.csdn.net/congcong68/article/details/41113239 互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服 ...

  8. 160906、Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)

    互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使 ...

  9. Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)转

    互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使 ...

随机推荐

  1. NOIP竞赛须知

    初赛报名 1.凡初.高中阶段的选手和同等年龄段中等专业学校的在校生均可以报名参加NOIP赛事. 2.选手以学籍学校为单位在指导教师处报名,由指导教师汇总本校学校报名情况并提交给NOI省特派员,由省特派 ...

  2. Cookie中的sessionid与JSONP原理

    一.首先说明一下cookie中的sessionid的作用. 1.cookie只是一些文本内容,多是键值对的形式,是请求头中的一部分 2.http是无连接的 知道这两点,就可以很容易的理解session ...

  3. day38-多进程多线程-进程池

    强大的Manage上一篇的数据共享的方式只有两种结构Value和Array.Python中提供了强大的Manage专门用来做数据共享的,其支持的类型非常多,包括,Value, Array,list,d ...

  4. day_7

    r 读w 写a 追加写 f = open('s.txt',mode='r',encoding='utf-8') ff = f.readline() #读取时一行一行的时候末尾会跟着\nprint(ff ...

  5. [Leetcode 15]三数之和 3 Sum

    [题目] Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? ...

  6. ZXX43大神实现的软渲染

    https://github.com/zxx43/Software-Render http://blog.csdn.net/zxx43/article/details/46755247 http:// ...

  7. MySQL-8.0.15在Win10和Ubuntu上安装&使用

    一.Windows环境下安装: 1.下载MySQL压缩包 官网地址:https://dev.mysql.com/downloads/mysql/ 点击直接下载: 2.解压到本地目录,并添加一个配置文件 ...

  8. 带通滤波 matlab

    巴特沃斯:1.带阻滤波器设计带阻滤波器指标:阻带上边界频率:5Kz:阻带下边界频率:7Kz:通带上边界频率:2Kz:通带下边界频率:9Kz:通带最大衰减:1dB:阻带最小衰减:20dB:设计程序如下: ...

  9. winform rar压缩包解压缩

    /// <summary>        /// 解压缩        /// </summary>        /// <param name="path& ...

  10. Linux删除软链接

    首先我们先来创建一个文件 #mkdir test_chk #touch test_chk/test.txt #vim test_chk/test.txt (这一步随便在这个test.txt里写点东东即 ...