你有把鸡蛋砸在一个篮子里的经历吗?

  • 时间:
  • 浏览:1

在Hadoop HA中,主要由以下有几个组件构成:

(1)MasterHADaemon:与Master服务运行在同一一4个守护进程池池中,可接收内部RPC命令,以控制Master服务的启动和停止;

(2)SharedStorage:共享存储系统,active master将信息写入共享存储系统,而standby master则读取该信息以保持与active master的同步,从而减少切换时间。常用的共享存储系统有zookeeper(被YARN HA采用)、NFS(被HDFS HA采用)、HDFS(被MapReduce HA采用)和类bookeeper系统(被HDFS HA采用)。

(3)ZKFailoverController:基于Zookeeper实现的切换控制器,主要由一4个核心组件构成:ActiveStandbyElector和HealthMonitor,其中,ActiveStandbyElector负责与zookeeper集群交互,通过尝试获取全局锁,以判断所管理的master进入active还是standby情况表;HealthMonitor负责监控各个活动master的情况表,以根据它们情况表进行情况表切换。。

(4)Zookeeper集群:核心功能通过维护一把全局锁控制整个集群有且仅有一一4个active master。当然,愿因分析分析ShardStorge采用了zookeeper,则全是记录这俩 这俩 情况表和运行时信息。

说下Hadoop中的单点解决方案

在正式介绍单点故障解决方案时候,先简要回顾一下这俩 4个系统(一4个系统均采用简单的master/slaves架构,其中master是单点故障)。

(1) HDFS:仿照google GFS实现的分布式存储系统,由NameNode和DataNode一种生活服务组成,其中NameNode是存储了元数据信息(fsimage)和操作日志(edits),愿因分析分析它是唯一的,其可用性直接决定了整个存储系统的可用性;

(2)YARN:Hadoop 2.0中新引入的资源管理系统,它的引入使得Hadoop不再局限于MapReduce一类计算,但会 支持简化的计算框架。它由两类服务组成,分别是ResourceManager和NodeManager,其中,ResourceManager作为整个系统的唯一组件,位于单点故障问题图片;

(3)MapReduce:目前位于一种生活MapReduce实现,分别是可独立运行的MapReduce,它由两类服务组成,分别是JobTracker和TaskTraker,其中JobTracker位于单点故障问题图片,曾经 是MapReduce On YARN,在这俩 实现中,每个作业独立使用一一4个作业跟踪器(ApplicationMaster),彼此之间不再相互影响,不位于单点故障问题图片。本文提到的单点故障实际上是第一种生活实现中JobTracker的单点故障。

先说当前Hadoop单点故障的解决进度,截止本文发布时,HDFS单点故障愿因分析分析解决,且提供了两套可行方案;MapReduce单点故障(JobTracker)由CDH4(CDH4一同打包了MRv1和MRv2,这里的单点故障指的是MRv1的单点问题图片)解决,且愿因分析分析发布;YARN单点故障尚未解决,但方案愿因分析分析提出,愿因分析分析解决方案借鉴了HDFS HA和MapReduce HA的实现,愿因分析分析愿因分析分析比较慢得到解决。

总体上说,Hadoop中的HDFS、MapReduce和YARN的单点故障解决方案架构是完整性一致的,分为手动模式和自动模式,其中手动模式是指由管理员通过命令进行主备切换,这通常在服务升级时有用,自动模式可降低运维成本,但位于潜在危险。

总体上讲,HA解决的难度取决于Master自身记录信息的有几个和信息可重构性,愿因分析分析记录的信息非常庞大且不可动态重构,比如NameNode,则不需要 一一4个可靠性与性能均很高的共享存储系统,而愿因分析分析Master保存有统统信息,但绝大多数可通过Slave动态重构,则HA解决最好的方法则容易得多,典型代表是MapReduce和YARN。从另外一一4个深度图看,愿因分析分析计算框架对信息丢失完整性全是非常敏感,比如一一4个愿因分析分析完成的任务信息丢失,只需重算即可获取,使得计算框架的HA设计难度远低于存储类系统。