Hadoop2.0的HA介绍

转载 2015年11月20日 16:26:33
原文  http://www.linuxidc.com/Linux/2014-05/101174.htm

前一篇文章介绍了Hadoop2.0(hadoop2.0架构,具体版本是hadoop2.2.0)的安装和最基本的配置(见 http://www.linuxidc.com/Linux/2014-05/101173.htm  ),并没有配置HA(High Avalability,高可用性),接下来的文章中会介绍hadoop2.0HA的配置。在介绍hadoop2.0的HA配置之前,本文先介绍hadoop2.0HA的基本原理和2种方式。

1 概述 

在hadoop2.0之前,namenode只有一个,存在单点问题(虽然hadoop1.0有secondarynamenode,checkpointnode,buckcupnode这些,但是单点问题依然存在),在hadoop2.0引入了HA机制。hadoop2.0的HA机制官方介绍了有2种方式,一种是NFS(Network 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把最近的edit文件读过来,然后把edits文件和fsimage文件合并成一个新的fsimage,合并完成之后会通知active namenode获取这个新fsimage。active namenode获得这个新的fsimage文件之后,替换原来旧的fsimage文件。

这样,保持了active namenode和standby namenode的数据的实时同步,standby namenode可以随时切换成active namenode(譬如active namenode挂了)。而且还有一个原来hadoop1.0的secondarynamenode,checkpointnode,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.0的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.0的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.0的HA介绍

6 实战tips 

  • QJM方式有明显的优点,一是本身就有fencing的功能,二是通过多个journal节点增强了系统的健壮性,所以建议在生成环境中采用QJM的方式。
  • journalnode消耗的资源很少,不需要额外的机器专门来启动journalnode,可以从hadoop集群中选几台机器同时作为journalnode。

介绍完hadoop2.0的HA的基本原理之后,后面的文章会分别详细介绍这两种方式的配置和原理。

--------------------------------------分割线 --------------------------------------

相关阅读

Ubuntu13.04上搭建Hadoop环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu上搭建Hadoop环境(单机模式+伪分布模式) http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu下Hadoop环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建Hadoop环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建Hadoop环境(在Winodws环境下用虚拟机虚拟两个Ubuntu系统进行搭建) http://www.linuxidc.com/Linux/2011-12/48894.htm

--------------------------------------分割线 --------------------------------------

参考资料: 

http://hadoop.apache.org/docs/r2.2.0/hadoop-yarn/hadoop-yarn-site/HDFSHighAvailabilityWithNFS.html

http://hadoop.apache.org/docs/r2.2.0/hadoop-yarn/hadoop-yarn-site/HDFSHighAvailabilityWithQJM.html

更多Hadoop相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址 http://www.linuxidc.com/Linux/2014-05/101174.htm

Hadoop2.0的HA介绍

前一篇文章介绍了Hadoop2.0(hadoop2.0架构,具体版本是hadoop2.2.0)的安装和最基本的配置(见 http://www.linuxidc.com/Linux/2014-05/10...
  • qq741997129
  • qq741997129
  • 2014年06月10日 14:34
  • 527

Hadoop 2.0 HA高可用集群配置详解

本文介绍了Hadoop2.0的HA高可用架构,并详细记录了HDFS HA和YARN HA集群的搭建过程,最后通过运行一个MR任务对集群功能进行测试。...
  • carl810224
  • carl810224
  • 2016年08月09日 10:30
  • 4689

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

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

hadoop2.0介绍(二)

(接上文) 2. YARN(MapReduce NextGen/MRv2) 这三个名字都在说明一个东西,改进的mapreduce。(注:有些文章中,将YARN与MapReduce分开,认为YARN是M...
  • guxch
  • guxch
  • 2013年11月26日 10:04
  • 5418

hadoop2.0介绍(一)

一、概述 现在大数据很“热”,hadoop系列(也称为The Hadoop Project Ecosystem)东西随着也很“热”,不过hadoop也确实有此“资本”,hadoop起源于google的...
  • guxch
  • guxch
  • 2013年11月26日 10:04
  • 11472

Hadoop2.0的HA介绍 (High Avalability,高可用性)

Hadoop2.0的HA介绍 本文先介绍hadoop2.0 HA (High Avalability,高可用性) 的基本原理和2种方式。 1 概述 在hadoop2.0之前,namenod...
  • zh521zh
  • zh521zh
  • 2016年06月30日 13:47
  • 386

Hadoop 2.0生态圈技术简介

本博文主要对开源分布式文件存储及处理框架Hadoop,以及其生态圈中的Zookeeper,Habase,Hive项目进行介绍。...
  • z45689
  • z45689
  • 2017年07月08日 13:03
  • 374

配置Hadoop2.0HDFS的HA以及联邦使用QJM

HA和联邦解释         相比于Hadoop1.0,Hadoop 2.0中的HDFS增加了两个重大特性,HA和Federaion。HA即为High Availability,用于解决NameN...
  • zmx729618
  • zmx729618
  • 2016年10月09日 15:16
  • 925

Hadoop2.0 HA 集群搭建步骤

集群节点分配Park01Zookeeper NameNode(active) Resourcemanager (active)Park02Zookeeper NameNode (standby...
  • qiangzhuangchao4049
  • qiangzhuangchao4049
  • 2017年02月09日 21:42
  • 130

Hadoop 2.0 中 NameNode/ResourceManager HA 总结

本文部分转自 董的博客《Hadoop 2.0中单点故障解决方案总结》 一. Hadoop 1.0/2.0 的内核架构 1. Hadoop 1.0 内核主要由两个分支组成:MapReduce 和...
  • u011414200
  • u011414200
  • 2016年01月01日 11:17
  • 2799
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hadoop2.0的HA介绍
举报原因:
原因补充:

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