HDFS 高可用(HA)

8 篇文章 0 订阅

HDFS 集群高可用(HA)

所谓的HA(High available),简称高可用(7*24不间断服务)

备份方式

主从方式(冷备)

准备两个相同的应用程序,一个对外提供服务,成为主程序,另外一个平时不运行(主要负责根对外提供服务的机器进行数据同步等操作),称之为从程序或备份程序,即从程序是主程序的一个备份,等主程序出现问题的时候,再顶上去。

双主互备(热备)

准备两个相同的应用程序,同时对外提供服务(这时两个主程序相互做对方的备份)当其中一个程序出现问题的时候,另外一个程序可以同样对外提供访问。

集群多备

跟双主互备一样,只不过备份的数量多一些而已。

为什么要HA

NameNode在Hadoop2.x之前HDFS中只有一个NameNode会对外提供访问,此时会出现一个致命问题, 就是单点故障和性能瓶颈(联邦)

NameNode在主要有以下两个方面影响

  • NameNode机器发生了意外,宕机集群将无法在提供服务
  • NameNode机器需要升级,包括软件,硬件等等.此时集群也无法使用

HDFS HA就是配置一个NameNode Active(活)和另外一个NameNode Standby(备份),如果Active节点 出现问题,standby的节点会继续提供服务,就可以防止单点故障.。

框架图图

原理

hadoop2.x之后,Clouera提出了QJM/QuromJournal Manager,这是一个基于Paxos算法实现的HDFS HA方案,它给出了一种较好的解决思路和方案

  • 基本原理就是用2N+1台 JN 存储EditLog,每次写数据操作有大多数(>=N+1)返回成功时即认为该次写成功,数据不会丢失了。当然这个算法所能容忍的是多有N台机器挂掉,如果多于N台挂掉, 这个算法就失效了。这个原理是基于Paxos算法
  • 在HA架构里面SecondaryNameNode这个冷备角色已经不存在了,为了保持standby NN时时的与主Active NN的元数据保持一致,他们之间交互通过一系列守护的轻量级进程JournalNode。
  • 任何修改操作在 Active NN上执行时,JN进程同时也会记录修改log到至少半数以上的JN中,这时Standby NN 监测到JN 里面的同步log发生变化了会读取 JN 里面的修改log,然后同步到自己的的目录 镜像树里面
  • 当发生故障时,Active的 NN 挂掉后,Standby NN 会在它成为Active NN 前,读取所有的JN里面 的修改日志,这样就能高可靠的保证与挂掉的NN的目录镜像树一致,然后无缝的接替它的职责,维护 来自客户端请求,从而达到一个高可用的目的。
  • QJM方式来实现HA的主要优势:  
  1. 不需要配置额外的高共享存储,降低了复杂度和维护成本
  2. 系统鲁棒性(Robust:健壮)的程度是可配置
  3. JN不会因为其中一台的延迟而影响整体的延迟,而且也不会因为JN的数量增多而影响性能(因为NN向JN发送日志是并行的)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值