Hadoop_HDFS HA 及解决方案

HDFS HA 及解决方案

  1> HDFS系统架构

    HDFS(Hadoop Distributed File System),及Hadoop分布式文件系统

    作用: 为Hadoop分布式计算框架提供高性能,高可靠,高可扩展的存储服务

    架构:典型的主(NameNode)从(DataNode)架构,两者一对多的关系,一个节点对应一个DataNode

       NameNode是整个文件系统的管理节点(文件系统的最高管理者), 负责对文件系统命名空间的

       管理与维护,另外, 也负责面向于客户端对文件的操作,控制,存储统一管理与分配,

       而DataNode则是存储具体文件

    数据类型:在HDFS上,有两种数据类型,分别是元数据类型(Metadata由NameNode存储在镜像文件中),

         所谓元数据就是文件除了实际内容外所有表示文件信息的数据,即MetaNode

         另外一种数据类型则是实际的文件数据了,在DataNode上存储形式是

         块(block,Hadoop1.x:64M;Hadoop2.x:128M),每个块可能有多个

         副本(默认3个,可自定义),因为由于副本机制,提高了文件数据的可靠性

    NameNode启动时加载镜像文件(fsimage.xxx)和操作文件(edits.xxx)到内存,

    并等待DataNode上报元数据,形成文件系统结构

    一旦NameNode宕掉,则导致整个HDFS无法正常服务

  2> HA定义

     HA(High Availability,高可用性):系统对外提供正常服务时间的百分比

        举个例子:Hadoop运行时会有两种情况,一是Hadoop正常提供服务时间(MTTF),

             二是不能提供正常服务时间(MTTR), 所以HA=MTTF/(MTTF+MTTR)*100%

    通过上面可以看出,HA能精确度量系统对对外提供正常服务的能力,也就是说系统的高可用程度

    HDFS出现无法提供正常服务情况: 正常的软硬件升级,维护;客户误操作导致HDFS发生故障

    绝大部分是由于软件导致

  3> HDFS HA 原因分析及应对措施

    可靠性: NameNode作为管理节点,统一维护和控制HDFS文件系统,而DataNode存储实际文件,

         且有副本护驾,也就是说NameNode成为了HDFS系统的单一故障点,

         NameNode能否正常运行决定了HDFS的可靠性

    可维护性: 一旦NameNode无法提供正常服务,如果元数据没有损坏,那就好说,重新启动即可,

        但元数据一旦损坏且没有任何措施,那么,NameNode的维护时间将无限大;

        DataNode因为副本的原故,既是块文件损坏,也会很快恢复,NameNode也决定了

        系统的可维护性,精确一点是NameNode元数据的可维护性决定HDFS的可维护性

  4> 现有HDFS HA解决方案

    主要是从使用者的角度出发,提高元数据的可靠性,减少NameNode服务恢复时间,

    措施主要是给元数据做备份,另外HDFS自身就有多种机制来确保元数据的可靠性

    减少NameNode服务恢复时间的措施有两种思路:

      a. 基于NameNode重启恢复模式,对NameNode自身启动过程进行分析,优化加载过程,减少启动时间

      b. 启动一个NameNode热备节点,当主节点不能正常提供服务,切换为热节点,切换时间成为恢复时间

    从效率上分析,第一种思路尽管进行了优化,但NameNode的启动时间仍受文件系统规模的限制,

    第二种则突破了这种限制,现有比较成熟的HA解决方案有:

      a. Hadoop元数据备份

        利用Hadoop自身元数据备份机制,NameNode可以将元数据保存到多个目录,一般是一个本地目录,

        有个远程目录(通过NFS进行共享),当NameNode发生故障,可以启动备用机器NameNode,加载远程目录

        中的元数据信息提供服务

        优点:

          Hadoop自带机制,成熟可靠,使用简单方便,无需开发,配置即可

          元数据有多个备份,可有效保证元数据的可靠性,并且元数据内容保持在最新状态

        缺点:

          元数据需要同步写入多个备份目录,效率低于单个NameNode

          恢复NameNode也就是重启NameNode,这样恢复时间与文件系统规模成正比

          由于备份的元数据在远程目录上,那么NFS在操作阻塞情况下,将无法提供正常服务  

      b. Hadoop的SecondaryNameNode方案

        启动一个SecondaryNameNode节点,定期从元数据信息(fsimage)和元数据操作日志(edits)下载,

        然后两个文件合并生生成新的镜像文件,推送给NameNode并重置edits

        NameNode启动时,只需加载新的fsimage

        优点:

          Hadoop自带机制,成熟可靠,使用简单方便,无需开发,配置即可

          减少NameNode启动所需时间,防止edits文件过去庞大

        缺点:

          没有做热备,那么重启时,文件系统的规模和启动时间成正比

          有概率在NameNode宕掉时,SecondaryNameNode并未做同步

          也就可能一部分操作数据会丢失,重启后的文件系统并不是最新的

      c. Hadoop 的 CheckPoint Node 方案

        CheckPoint(检查点)原理基本与SecondaryNameNode相同,实现方式不同,

        该方案利用Hadoop 的CheckPoint机制进行备份,配置一个CheckPoint Node节点,

        该节点定期区合并元数据镜像文件和用户操作日志edits,在本地形成最新的CheckPoint并上传到

        Primary NameNode 进行更新,一旦NameNode宕掉,可以启动备份NameNode节点读取CheckPoint信息

        并提供服务

        优点:

          使用简单方便,无需开发,配置即可

          元数据有多个备份

        缺点:

          没有做热备,切换节点时间长

          和SecondaryNameNode一样,有概率恢复的元数据信息不是最新的

      d. Hadoop 的Backup Node 方案

        利用Hadoop自身的Failover措施,配置一个Backup Node,Backup Node 在内存和本地都保存

        一份HDFS最新的命名空间元数据信息,一旦NameNode宕掉,可使用Backup Node中最新的元数据信息

        优点:

          Hadoop自带机制,无需开发,配置即用

          Backup Node的内存中保留了最新的元数据信息避免NFS挂载进行备份的所带来的风险

          Backup Node可以直接利用内存中的元数据信息进行CheckPoint并保存到本地,效率比从

          NameNode下载元数据进行CheckPoint效率高

          Backup Node在内存中保存,一旦有操作日志,Backup Node内存同步并更新本地磁盘的edits,

          两个步骤都成功,整个操作才算成功,并保证了元数据的最新状态

        缺点:

          该方案还不成熟,NameNode无法提供服务时,Backup Node 还不能直接接替NameNode提供服务

          Backup Node 未保存Block的位置信息,等待DataNode上报,即便后期实现了热备,仍需要一部分时间进行切换

          当前版本只允许一个Backup Node 连接到NameNode

      e. DRDB方案

        利用DRDB方案机制进行元数据备份

        也就是在NameNode无法提供服务时,启动备用机器的NameNode,读取DRDB备份的元数据信息

        优点:

          比较成熟的备份机制

          元数据有多个备份,保证了元数据的最新状态

          备份工作由DRDB完成,对于新的操作日志,NameNode无需同步到多个备份目录,效率上优于元数据备份

        缺点:

          没有做热备,切换机器启动NameNode时间长

          元数据的可靠性没有保障,需要引入新的机制去保证

       f. FaceBook 的AvatarNode方案

        一种热备机制,首先AvatarNode作为Primary NameNode对外提供服务,Standby Node 处于SafeMode模式

        在内存中保存Primary NameNode最新的元数据信息,两者依靠NFS进行交互,DataNode报告操作日志时会同时

        向两个Node中发送Block位置信息,因此保证了元数据的最新状态一但Primary NameNode宕掉,直接由

        Standby Node接替并成为Primary Node对外提供服务,大大缩短切换时间

        优点:

          提供热备、切换时间大大缩短

          集成在FaceBook自用的Hadoop中,并部署到了自己的集群

        缺点:

          修改了部分源码,增加了一定的复杂性,在软件维护上带来一定问题

          参考资料少,只提供一个备份节点

  5> 方案优缺点比较

  

时间: 2024-10-14 13:39:08

Hadoop_HDFS HA 及解决方案的相关文章

(FortiGate)飞塔防火墙HA(高可用性)解决方案

1. 概述 HA问题是建设TCP/IP网络需要考虑的一个重要问题.当因为某个设备出现宕机时,如何保证网络依旧畅通是依赖于关键业务的公司的网络建设的核心.所有流量都要经过安全网关,设计网络让安全网关不会成为单点故障,同时还需要保证故障时业务系统得到安全防护,避免网络攻击给公司带来不可估计的损失. Fortinet公司作为安全资深公司,在不断地发展安全设备的功能和性能时,同样为高可靠性提供了多种解决方案,VRRP.会话同步和HA解决方案(FGCP).强大和灵活的高可用性解决方案是很多运行着关键业务的

RHEV平台高可用性(HA)解决方案

1.电源管理配置 红帽企业虚拟化管理器提供了多种高可用性特性,可应用于颗粒的方式,从一个单一的虚拟机级别保护对多个主机故障情况.此外,您可以保护您的虚拟机对各种故障,配置电源管理,红帽企业虚拟化管理器的故障检测和故障恢复解决方案相结合,虚拟机的高可用性. 若要实施电源管理配置,必须有一个为每个主机的电源管理卡.如采用智能电源管理接口(IPMI)设备.如果你有不同的设备,请参阅"红帽企业虚拟化管理指南". 高可用虚拟机设置就会生效,如果启用电源管理的主机上.但是配置电源管理之前,记得你以

hadoop2.x通过Zookeeper来实现namenode的HA方案以及ResourceManager单点故障的解决方案

我们知道hadoop1.x之前的namenode存在两个主要的问题:1.namenode内存瓶颈的问题,2.namenode的单点故障的问题.针对这两个问题,hadoop2.x都对它进行改进和解决.其中,问题1中对namenode内存瓶颈的问题采用扩展namenode的方式来解决.对于问题2中的namenode的单点故障问题hadoop2.x采用的是HA的解决方案.apache hadoop 官方网站上提供了两种解决HDFS High Availability Using the Quorum

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

1 Hadoop HA架构详解 1.1 HDFS HA背景 HDFS集群中NameNode 存在单点故障(SPOF).对于只有一个NameNode的集群,如果NameNode机器出现意外情况,将导致整个集群无法使用,直到NameNode 重新启动. 影响HDFS集群不可用主要包括以下两种情况:一是NameNode机器宕机,将导致集群不可用,重启NameNode之后才可使用:二是计划内的NameNode节点软件或硬件升级,导致集群在短时间内不可用. 为了解决上述问题,Hadoop给出了HDFS的高

hadoop的HA机制+zookeeper

关于hadoop的HA配置以及wordcount测试 一,简单环境配置 1,查看centos版本位数: $>getconf LONG_BIT, 2,桌面模式和文本模式之间进行切换: 1),在终端命令行进行设置时只能暂时改变模式, $>init 3    表示切换到文本模式 $>init 5    表示切换到桌面模式 2),永久改变模式需要修改配置文件,进入到etc目录下 $>sudo nano inittab   修改该文件最后一行 若需要文本模式则改为 id:3:initdefa

理解 OpenStack 高可用(HA)(4):RabbitMQ 和 Mysql HA

本系列会分析 OpenStack 的高可用性(HA)解决方案: (1)概述 (写着中...) (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)Neutron L3 Agent HA - DVR (分布式虚机路由器) (4)RabbitMQ 和 Mysql HA 1. 基础知识 1.1 Pacemaker Pacemaker 承担集群资源管理者(CRM - Cluster Resource Manager)的角色,它是一款开源的高可用资源管理软件,适合各种大

理解 OpenStack 高可用(HA)(3):Neutron 分布式虚拟路由(Neutron Distributed Virtual Routing)

本系列会分析 OpenStack 的高可用性(HA)解决方案: (1)概述 (TBD,写完整个系列在回来写这块) (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)Neutron L3 Agent HA - DVR (分布式虚机路由器) (4)RabbitMQ 和 Mysql HA Neutron 作为 OpenStack 一个基础性关键服务,高可用性(HA)和扩展性是它的基本需求之一.对 neutron server 来说,因为它是无状态的,我们可以使用负

也谈OpenStack中的虚拟机HA

OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目.它的社区拥有超过130家企业及1350位开发者,这些机构与个人都将OpenStack作为基础设施即服务(IaaS)资源的通用前端.OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性.做为云计算IAAS层事实标准,OpenStack广泛的应用与各行各业.到目前为止OpenStack社区并没有一个完整的虚拟机HA解决方案.起初社区认为虚拟机的HA不是云平台层次的特性,不应该在云平台层面来实现,虚拟机的H

搭建hadoop2.6.0 HA及YARN HA

以前用hadoop2.2.0只搭建了hadoop的高可用,但在hadoop2.2.0中始终没有完成YARN HA的搭建,直接下载了hadoop最新稳定版本2.6.0完成了YARN HA及HADOOP HA的搭建流程,没有仔细看hadoop的官方文档,貌似hadoop2.2.0不支持YARN HA,如果说错了谢谢指正呀,下面总结一下我的搭建流程: 首先完成虚拟机的搭建: 机器名 IP 安装软件 运行进程 namenode1 192.168.3.161 hadoop NameNode.DFSZKFa