zoukankan      html  css  js  c++  java
  • Hadoop学习笔记

    Hadoop学习笔记 - HA

    HA概述

    为了保证集群的稳定性,保证业务连续性(即集群中某些节点故障时,有对应的策略使得集群继续运行而不崩溃),于是有了HA模式(Highly Available 高可用性)。

    HA原理图


    NameNode

    1. 存储元数据:其中的NN为NameNode,为了避免一个NN的压力过大,在1.x版本中可以设置NameNode和SecondaryNameNode,后面2.x 3.x版本可以支持多个NameNode,将元数据分布式存储。
    2. 只能有一个NameNode处于Active状态,与Client直接通信,而其他的NameNode处于StandBy状态。
    3. 为了保证NameNode之间的元数据同步,引入了JN(图中最绿的那两坨,本质也是一个小集群,保证稳定性),即JournalNode,用于同步各个NameNode的信息

    JournalNode

    ActiveNameNode如何确定数据同步完成呢?

    过半原则:JournalNode的数量一般设置为单数,当JournalNode发送的同步数量超过了一半时,默认数据同步完毕


    Zookeeper

    1. 作用:分布式协调,即当集训发生了变化或者故障时,无需手动调整而是自动协调。
    2. ZKFC:即ZookeeperFailoverController,和NameNode运行在同一台机器上,监视NameNode的状态

    HA大致运行过程

    1. 抢锁:集群启动时,各个NameNode会争相向Zookeeper集训加上自己的锁,但是只有一个集群可以加锁成功,转而成为ActiveNameNode,其他那些NameNode会注册好自己的回调函数,变成StandBy状态
    2. 故障解锁:当NameNode挂掉时,运行在与之相同一台机器上的ZKFC触发,将其加的那把锁解除
    3. 回调函数:当原先ActiveNameNode的锁被解除时,触发剩余NameNode的回调函数,剩下的ZKFC会验证原先的ActiveNameNode是否真的宕机,如果是,则将自己设为Active状态
  • 相关阅读:
    centos7环境下搭建redis及springboot连接集成
    SSL配置及练习
    centos7 环境下 搭建mysql数据库
    centos7 集群免密码登录
    IDEA如何设置spring-boot-devtools即所见即所得
    GitHub之分支创建
    联机SSH访问本地虚机环境
    2.7.3版本hadoop之HDFS环境搭建之浅谈
    Idea 打包maven项目 以及spring boot 的自动配置
    VoLTE Spec 87 Documents
  • 原文地址:https://www.cnblogs.com/xun-/p/14332532.html
Copyright © 2011-2022 走看看