热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Hadoop2.x的HA介绍

这篇文章主要介绍的是Hadoop2.0的HA(HighAvalability高可用性),在介绍hadoop2.0的HA配置之前,本文先介绍hadoop2.0HA的基本原理和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

这篇文章主要介绍的是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之间网络有问题的话,则会造成他们之前数据的同步出问题。


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的失败。


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。


6.实战tips

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

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


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

推荐阅读
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • HBase运维工具全解析
    本文深入探讨了HBase常用的运维工具,详细介绍了每种工具的功能、使用场景及操作示例。对于HBase的开发人员和运维工程师来说,这些工具是日常管理和故障排查的重要手段。 ... [详细]
  • 本文详细介绍了 Java 中的 org.apache.hadoop.registry.client.impl.zk.ZKPathDumper 类,提供了丰富的代码示例和使用指南。通过这些示例,读者可以更好地理解如何在实际项目中利用 ZKPathDumper 类进行注册表树的转储操作。 ... [详细]
  • Hadoop发行版本选择指南:技术解析与应用实践
    本文详细介绍了Hadoop的不同发行版本及其特点,帮助读者根据实际需求选择最合适的Hadoop版本。内容涵盖Apache Hadoop、Cloudera CDH等主流版本的特性及应用场景。 ... [详细]
  • 全面解析运维监控:白盒与黑盒监控及四大黄金指标
    本文深入探讨了白盒和黑盒监控的概念,以及它们在系统监控中的应用。通过详细分析基础监控和业务监控的不同采集方法,结合四个黄金指标的解读,帮助读者更好地理解和实施有效的监控策略。 ... [详细]
  • 从码农到创业者:我的职业转型之路
    在观察了众多同行的职业发展后,我决定分享自己的故事。本文探讨了为什么大多数程序员难以成为架构师,并阐述了我从一家外企离职后投身创业的心路历程。 ... [详细]
  • 本文详细介绍了使用ZooKeeper构建高可用集群的方法,包括必要的软件环境准备、配置文件调整及集群启动等关键步骤。通常,一个ZooKeeper集群由奇数个节点组成,以确保Leader选举的有效性。 ... [详细]
  • 本文详细记录了一次 HBase RegionServer 异常宕机的情况,包括具体的错误信息和可能的原因分析。通过此案例,探讨了如何有效诊断并解决 HBase 中常见的 RegionServer 挂起问题。 ... [详细]
  • 本文详细介绍了 Flink 和 YARN 的交互机制。YARN 是 Hadoop 生态系统中的资源管理组件,类似于 Spark on YARN 的配置方式。我们将基于官方文档,深入探讨如何在 YARN 上部署和运行 Flink 任务。 ... [详细]
  • 本文介绍了Hive作为基于Hadoop的数据仓库工具的核心概念,包括其基本功能、使用理由、特点以及与Hadoop的关系。同时,文章还探讨了Hive相较于传统关系型数据库的不同之处,并展望了Hive的发展前景。 ... [详细]
  • 本文介绍了在解决Hive表中复杂数据结构平铺化问题后,如何通过创建视图来准确计算广告日志的曝光PV,特别是针对用户对应多个标签的情况。同时,详细探讨了UDF的使用方法及其在实际项目中的应用。 ... [详细]
  • 初探Hadoop:第一章概览
    本文深入探讨了《Hadoop》第一章的内容,重点介绍了Hadoop的基本概念及其如何解决大数据处理中的关键挑战。 ... [详细]
  • Hadoop MapReduce 实战案例:手机流量使用统计分析
    本文通过一个具体的Hadoop MapReduce案例,详细介绍了如何利用MapReduce框架来统计和分析手机用户的流量使用情况,包括上行和下行流量的计算以及总流量的汇总。 ... [详细]
  • HDFS数据读写流程详解
    本文详细解析了HDFS(Hadoop分布式文件系统)中的数据读写过程,包括从客户端发起请求到最终完成数据传输的每一个关键步骤。 ... [详细]
author-avatar
范大少微博劳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有