Hadoop Namenode HA方案比较

原创 2012年03月23日 16:00:42

      我们来分析一下业界普遍关注的HDFS Namenode高可用解决方案,这些方案的提出无非都是想解决Namenode设计上的单点故障。这些方案按照部署类型可划分为主从(Master-Slave)和集群(Cluster),其中主从根据状态的一致程度又细分为冷备、温备和热备,按照切换方式可划分为人工切换和自动切换,按照数据同步方式可划分为共享存储和复写。 下图列举了目前HadoopHA方案,接下来我们对各种方案进行详细的介绍:


     Facebook的AvatarNode是业界较早的Namenode HA方案,它是基于HDFS 0.20实现的,如下图所示。由于采用的是人工切换,所以实现相对简单。AvatarNode对Namenode进行了封装,处于工作状态的叫Primary Avatar,处于热备状态的叫Standby Avatar(封装了Namenode和SecondaryNameNode),两者通过NFS共享EditLog所在目录。在工作状态下,Primary Avatar中的Namenode实例接收Client的请求并进行处理,Datanode会向Primary和Standby两个同时发送blockReport和心跳,Standby Avatar不断地从共享的EditLog中持续写入的新事务,并推送给它的Namenode实例,此时Standby Avatar内部的Namenode处于安全模式状态,不对外提供服务,但是状态与Primary Avatar中的保持一致。一旦Primary发生故障,管理员进行Failover切换:首先将原来的Primary进程杀死(避免了“Split Brain”和“IO Fencing”问题),然后将原来的Standby设置为Primary,新的Primary会保证回放完成所有的EditLog事务,然后退出安全模式,对外接收服务请求。为了实现对客户端透明,AvatarNode主从采用相同的虚拟IP,切换时将新的Primary设置为该虚拟IP即可。整个流程可在秒~分钟级别完成。


    BackupNode是社区版Hadoop 0.21提供的一种高可用方案。它不仅实现了SecondaryNameNode的功能,还是实现了复写功能,即同时向Active Namenode和Standby Namenode写入EditLog,这样也避免了共享存储会遇到的“IO Fencing”问题。如果Standby意外宕机,Active Namenode会把EditLog备份到其他的地方。但是,BackupNode只能算主从温备,因为Datanode只会向Active Namenode汇报和保持心跳,一旦Active Namenode发生故障,需要人工切换到BackupNode上,并且需要在BackupNode上把BlocksMap状态完全构建起来,这样的切换时间在分钟~小时级别。


   Cloudera于2012年3月发布了CDH4B1(beta)版本,它的实现思路跟AvatarNode类似,目前也只支持人工切换,所不同的是,为了保证集群中只有一个Active Namenode,该版本显式的提供了Fencing机制。在进行人工切换时,它会先通过常规方式将Active Namenode关闭,如果失败便使用Fencing配置指定的方式强行关闭该进程,成功后才设定新的Active Namenode,否则返回失败信息。在CDH4B1为Fencing机制提供了两种方法:sshfence和shell,sshfence实现了通过SSH方式登录到目标机器上杀死Active Namenode进程,而shell方式可以调用管理员自己开发的脚本来实现Fencing。

   Heartbeat+DRBD方式是通过Linux系统提供的工具来实现Hadoop Namenode的高可用性。该方案通过Heartbeat心跳监控,DRBD实现共享存储,每个服务器都需要配备双网卡,其中的一个网卡用于心跳网络。Client通过虚拟IP与ActiveNamenode进行通信,一旦系统检测到ActiveNamenode失去心跳(宕机或进程崩溃),则进行Failover切换,切换以后新的ActiveNamenode获得了原来ActiveNamenode的虚拟IP,来接收Client的服务请求。不过,新的ActiveNamenode需要重新恢复内存状态,切换时间较长。

    在社区版HDFS的路线演进中,HA Branch是一个很重要的分支,目前HA Branch已经跟Hadoop 0.23的主干进行了合并。出于灵活性考虑,社区提出了多种高可用性方案,现在实现的是通过共享存储和Zookeeper来实现主从热备,如下图所示,不过通过BookKeeper来实现复写的方案被认为是长期看好的,当然这也需要BookKeeper团队的配合。BookKeeper是一个高性能的可靠的预写入日志系统,通过它可以实现EditLog在Active Namenode和Standby Namenode上的复写,从而取代它们之间的共享存储。社区版的方案推荐采用独立的FailoverController进程和Zookeeper来监控Active Namenode和Standby Namenode的状态和主从选举,也可以采用Linux HA和其他的Quorum服务来实现。


Hadoop双namenode配置搭建(HA)

配置双namenode的目的就是为了防错,防止一个namenode挂掉数据丢失,具体原理本文不详细讲解,这里只说明具体的安装过程。 Hadoop HA的搭建是基于Zookeeper的,关于Zooke...
  • Trigl
  • Trigl
  • 2017年02月14日 17:31
  • 4494

大数据实战下笔记——Hadoop NameNode HA的原理

NameNode高可用整体(HA)框架NameNode的主备切换NameNode的共享存储 一.NameNode高可用整体框架 组件: 两个NameNode,一个在Active上,一个在S...
  • xqclll
  • xqclll
  • 2016年08月21日 23:00
  • 1326

Namenode HA原理详解(脑裂)

Namenode HA原理详解(脑裂) 目录(?)[+] Namenode HA原理详解 社区hadoop2.2.0 release版...
  • u014774781
  • u014774781
  • 2016年07月18日 11:08
  • 1998

配置NameNode HA

1. 安装zookeeper 请见http://blog.csdn.net/kiwi_kid/article/details/53496992 2,修改相关配置文件 core-site....
  • u012422541
  • u012422541
  • 2016年12月07日 21:10
  • 595

Hadoop2.0 Namenode HA实现方案介绍及汇总

namenode单点故障解决方案。NN现在的HA解决方案主要思路是提供一个保存元数据信息的地方,保证editlog不会丢失。董的这篇HA单点故障解决方案总结中介绍了从解决MRv1的Jobtracker...
  • zbf8441372
  • zbf8441372
  • 2013年11月05日 15:03
  • 5998

配置hadoop2.X的namenode HA及Yarn HA

以前用hadoop2.2.0只搭建了hadoop的高可用,但在hadoop2.2.0中始终没有完成YARN HA的搭建,直接下载了hadoop最新稳定版本2.6.0完成了YARN HA及HADOOP ...
  • wangxiaopeng0329
  • wangxiaopeng0329
  • 2016年06月24日 10:34
  • 487

Hadoop+Zookeeper+NameNode(HA)+ResourceManager(HA)自动切换 配置

HDFS的NameNode的NameNode的HA配置 一,zookeeper的安装(略)。 启动Zookeeper。 二,Hadoop配置文件修改。 修改core-site....
  • nacey5201
  • nacey5201
  • 2015年10月22日 18:17
  • 3465

Namenode HA

NameNode HA #一、Hadoop2进程 QuorumPeerMain JournalNode NameNode DFSZKFailoverController DataN...
  • wl101yjx
  • wl101yjx
  • 2016年03月25日 15:42
  • 353

Hadoop HA——namenode无法启动问题解决

 今天按照之前《Hadoop2.6.0 + zookeeper集群环境搭建 》一文重新搭建了Hadoop2.7.2+zookeeper的HA,实现namenode挂掉后可以自动切换,总体来说还算...
  • yhao2014
  • yhao2014
  • 2016年09月03日 23:30
  • 4048

NameNode热迁移方案

方案目标 将现有NameNode迁移到新的节点上,期间保证集群对外提供服务. 方案背景 随着集群数据量和规模的扩增,需要将NameNode迁移到性能更优的机器上,以此提高NameNode...
  • Androidlushangderen
  • Androidlushangderen
  • 2016年08月18日 19:14
  • 2714
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hadoop Namenode HA方案比较
举报原因:
原因补充:

(最多只允许输入30个字)