简谈 HDFS 的高可用 HA

作为一个服务提供者,高可用是一个不得不说的话题,那么今天我们就来聊一聊 HDFS 的高可用,我们主要从以下几点来简单说一说:

  • 什么是高可用?
  • HDFS的高可用的决定性因素是什么?
  • HDFS 高可用方案?

高可用是什么?

要聊高可用,我们先来了解下以下两个概念:

  • 什么是高可靠?
    正常运行时间能够满足预计时间我们称为高可靠,可以用,平均无故障可用时间来衡量。
  • 什么是可维护性?
    一个系统从故障状态恢复到可用状态的难以程度我们称为可维护性,可以用,平均维修时间来衡量
  • 什么是高可用呢?
    高可用简单来说就是具有:高可靠性,并且易于维护两大特点。
    如果一个机器可靠性很高,但是一旦故障很难恢复,它也不具备高可用性

HDFS的高可用的决定性因素是什么?

我们知道 HDFS 的架构主要是由 NameNode 和 DataNode 组成,其中DataNode宕机是不会对集群正常运行造成什么影响的,当然,不能是灾难性的宕机,一下宕机一大片那种。所以决定 HDFS 高可用的就是 NameNode的高可用了,在 Hadoop 1.0 之前,NameNode也是一直存在 SPOF(单点故障)的,为此也是衍生了一系列的高可用方案。

HDFS 高可用方案?

这个问题放在现在来说,其实没太多好说的了,HDFS 从2.x开始就已经支持自己的 HA 方案了,这不是我们的重点,我们今天主要谈谈曾经为了 HDFS 的高可用 出现的一些方案吧。。。这里需要说明的一点是,HDFS的高可用主要还是针对其 元数据 的高可用。

  • Secondary NameNode
    该方案启动一个Secondary NameNode 节点,该节点定期从NameNode 节点上下载元数据信息(元数据镜像fsimage 和元数据库操作日志edits ),然后将fsimage 和 edits 进行合并,生成新的fsimage(该 fsimage 就是Secondary NameNode 下载时刻的元数据的Checkpoint ),在本地保存,并将其推送到NameNode,覆盖其就得fsimage。(在 Secondary NameNode 下载好 元数据信息后,NameNode会生成新得 edits文件)

缺点:

  1. 没有做到热备,当NameNode 无法提供服务时,需要重启NameNode,服
    务恢复时间与文件系统规模大小成正比。
  2. Secondary NameNode 保存的只是Checkpoint 时刻的元数据,因此,一旦
    NameNode 上的元数据损坏,通过Checkpoint 恢复的元数据并不是HDFS 此刻的最新数据,存在一致性问题。
  • Hadoop 的元数据备份方案
    该方案利用Hadoop 自身的Failover 措施(通过配置dfs.name.dir),NameNode 可以将元数据信息保存到多个目录。通常的做法,选择一个本地目录、一个远程目录(通过NFS 进行共享),当NameNode 发生故障时,可以启动备用机器的 NameNode,加载远程目录中的元数据信息,提供服务。

缺点

  1. 该方案主要是解决元数据保存的可靠性问题,但没有做到热备,HDFS 恢
    复服务时,需要重新启动NameNode ,恢复时间与文件系统规模成正比。
  2. NFS 共享的可靠性问题,如果配置的多个目录中有任何一个目录的保存因
    为异常而阻塞,将会导致整个HDFS 的操作阻塞,无法对外提供正常服务。
  • AvatarNode 方案
    Active Node 作为Primary NameNode 对外提供服务。Standby Node 处于Safemode 模式,在内存中保存Primary NameNode 最新的元数据信息。Active Node 和 Standby Node 通过NFS 共享存储进行交互。DataNode 同时向Active Node 和 Node 发送Block location 信息。当管理员确定Primary NameNode 发生故障后,将Standby Node 切换为 Primary NameNode。由于Standby Node 内存中保存了所有元数据的最新信息,因此可直接对外提供服务,大大缩短了切换时间。这也是2.x版本之后自带得 HA 的方案原理。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值