欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Hadoop2.x的HA介绍

程序员文章站 2024-02-12 18:47:16
...

这篇文章主要介绍的是Hadoop2.0的HA(High Avalability 高可用性),在介绍hadoop2.0的HA配置之前,本文先介绍hadoop2.0 HA的基本原理和2种方式。 1.概述 在Hadoop2.0之前,NameNode只有一个,存在单点问题(虽然Hadoop1.0有SecondaryNameNode,checkPointNode

这篇文章主要介绍的是Hadoop2.0的HA(High Avalability 高可用性),在介绍hadoop2.0的HA配置之前,本文先介绍hadoop2.0 HA的基本原理和2种方式。

1.概述

在Hadoop2.0之前,NameNode只有一个,存在单点问题(虽然Hadoop1.0有SecondaryNameNode,checkPointNode、buckcupnode这些,但是单点问题依然存在),在hadoop2.0引入了HA机制。Hadoop2.0的HA机制官方介绍了有2种方式,一种是NFS(Net Work File System)方式,另外一种是QJM(Quorum Journal Manager)方式。


2.基本原理

Hadoop2.0的HA机制有两个NameNode,一个是active NameNode,状态是active;另外一个是standby NameNode,状态是standby。两者的状态是可以切换的,但不能同时都是active状态,最多只有1个是active状态。只有active NameNode提供对外的服务,standby NameNode是不对外服务的。active NameNode和standby NameNode之间通过NFS或者JN(journalnode QJM方式)来同步。

active NameNode会把最近的操作记录写到本地一个edits文件中(edits file),并传输到NFS或者JN中。standby NameNode定期检查,从NFS或者JN把最近的edits文件读过来,然后把edits文件和fsimage文件合并成一个新的fsimage,合并之后会通知active NameNode获取这个新的fsimage。active NameNode获得这个新的fsimage文件之后,替换原来旧的fsimage文件。

这样,就保持了active NameNode和standby NameNode的数据的实时同步,standby NameNode可以随时切换成active NameNode(比如active NameNode挂了)。而且还有一个原来hadoop1.0的SecondaryNameNode,checkpoint,buckcupnode的功能;合并edits文件和fsimage,使fsimage文件一直保持更新。所以启动了hadoop2.0的HA机制之后,SecondaryNameNode,checkpointnode,buckcupnode这些都不需要了。


3.NFS方式

NFS作为active NameNode和standby NameNode之间数据共享的存储。active NameNode会把最近的edits文件写到NFS,而standby NameNode从NFS中把数据读过来。这个方式的缺点是,如果active NameNode或者standby NameNode有一个和NFS之间网络有问题的话,则会造成他们之前数据的同步出问题。

Hadoop2.x的HA介绍

4.QJM(Quorum Journal Manager)方式

QJM的方式可以解决上述NFS容错机制不足的问题。active NameNode和standby NameNode之间是通过一组journalNode(数量是奇数,可以是3,5,7,...2n+1)来共享数据。active NameNode把最近的edits文件写到2n+1个journalnode上,只要有n+1个写入成功的话就表示写入操作成功了,然后standby NameNode就可以从journalnode上读取了。可以看到,QJM方式由容错机制,可以容忍n个journalNode的失败。

Hadoop2.x的HA介绍

5.主备节点的切换

active NameNode和standby NameNode可以随时切换。当active NameNode挂掉后,也可以把standby NameNode切换成active状态,称为active NameNode。可以人工切换和自动切换。人工切换时通过执行HA管理的命令来改变NameNode的状态,从standby到active,或者从active到standby。自动切换则在active NameNode挂掉的时候,standby NameNode自动切换成active状态,取代原来的active NameNode称为新的active NameNode,HDFS继续正常工作。

主备节点的自动切换需要配置Zookeeper。active NameNode和standby NameNode把他们的状态实时记录到Zookeeper中,Zookeeper监视他们的状态变化。当Zookeeper发现active NameNode挂掉后,会自动把standby NameNode切换成active NameNode。

Hadoop2.x的HA介绍

6.实战tips

1):QJM方式有明显的优点,一是本身就有fencing的功能,而是通过多个journal节点增强了系统的健壮性,所以建议在生产环境中采用QJM的方式。

2):journalnode消耗的资源很少,不需要额外的机器专门来启动journalnode,可以从hadoop集群中选几台机器作为journalnode。


原文来自:http://www.linuxidc.com/Linux/2014-05/101174.htm

上一篇: 使用yum更新php的版本方法

下一篇: