HDFS的高可用机制(HA)与Hadoop联邦机制(Federation)概述

背景

分布式文件系统中( HDFS,Hadoop Distributed File System ),NameNode在内存中存储着整个文件系统的元数据信息,如文件数据块的地址映射、文件系统的命名空间、文件操作权限等。倘若NameNode节点主机一旦宕机,整个集群即将瘫痪

高可用的Hadoop集群

在搭建Hadoop集群时,通常需要搭建多个NameNode,这样可以保证如果其中一个NameNode发生宕机,另一个NameNode可以迅速的补充,保证集群7*24小时的不间断工作。通常,NameNode有两个状态,分别是active(响应客户端请求)standby(待命状态,在active状态的NameNode宕机时迅速切换)
这里需要区分的是NameNode与SecondaryNameNode之间的关系,SecondaryNameNode只作为分担NameNode工作压力的角色,并不能在NameNode宕机时替代NameNode。为简短篇幅,NameNode以下简称“nn”

高可用HDFS工作原理

高可用HDFS工作原理

HA自动切换机制流程

  1. HealthMonitor监控nn健康状况,将结果反馈给ZKFC
  2. 若nn状态出现异常,ZKFC将nn异常状况报告给ASE
  3. ASE通知Zookeeper选举出新的NameNode
  4. Zookeeper将选举结果返回给ASE
  5. ASE向ZKFC报告选举结果
  6. ZKFC完成nn间的状态切换

下面对各个模块进行说明

元数据共享存储系统

元数据共享存储系统由多个JournalNode构成。JournalNode中主要存放文件元数据信息,active-nn通过edits往JournalNode中写入日志数据,standby-nn负责从JournalNode中读取日志信息并生成元数据。为了保证数据不丢失,active-nn与standby-nn的元数据读写操作必须是同步的

ZKFC

ZKFC是基于Zookeeper的故障转移控制器,运行在每个nn中,用来监控nn的健康状态并在Active-nn出现连接超时,宕机等连接失败的情况下通知ZooKeeper进行新的选举,完成active-nn与standby-nn间的主备切换,下面介绍ZKFC中的重要组件

1. HealthMonitor
ZKFC定期通过HealthMonitor对nn进行健康诊断,HealthMonitor负责记录nn的健康状态并向ZKFC进行反馈(nn状态正常或异常)

2. ActiveStandbyElector
ActiveStandByElector主要完成nn与Zookeeper间的交互,当nn在Zookeeper上的节点状态发生变化时,ASE负责将结果返回给ZKFC,与此同时,如果nn出现宕机,也由ASE通知Zookeeper完成选举

3. ZKFailoverController
ZKFailoverController负责协调HealthMonitor和ActiveStandbyElector对象,完成nn状态切换过程

DataNode
存储文件信息,定期向nn发送数据块信息,与nn建立心跳感知(向nn报告健康状况)

Hadoop的联邦机制(Federation)

Hadoop的联邦机制(Federation)

图源:https://blog.csdn.net/haveanybody/article/details/115616992

背景

虽然高可用HDFS解决了nn单点故障问题,但是实际业务需求中随着业务量的增大,内存中的元数据会越来越多最终导致内存不足等问题

联邦机制

为了解决内存不足的问题,Hadoop允许对nn进行横向扩展,也就是拥有多个nn,每个nn管理着各自的数据块。DataNode中不同的存储数据块由不同的nn进行管理,但因此也产生了问题,即联邦机制不能解决nn单点故障问题。所以,在部署环境时,应采用高可用(HA)+联邦机制的部署方案来搭建集群。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值