减轻哈杜普的跟腱



我刚刚给这个Hadoop tutorial读了一个状态,即Hadoop在JobTracker:中有跟腱(单点故障)

JobTracker是Hadoop MapReduce服务的单点故障,这意味着如果JobTracker宕机,所有正在运行的作业都将暂停。

本文还指出NameNode是一个SPOF:

Hadoop集群中的单点故障是NameNode。

单点故障很糟糕,mkay什么策略/技术/工具等。是否可以绕过这些SPOF,使Hadoop变得冗余、容错和有弹性(流行语警报!)

HDFS和Mapreduce是Hadoop的核心组件,在早期的Apache Hadoop版本中,Namenode和Jobtracker是SPOF(只能配置一个实例)。此问题已从Hadoop2.X中修复。

Jobtracker HA

作业跟踪器HA可以通过在两个节点上以Active - Standby模式配置2个Jobtracker(JT)实例来实现。如果一个JT出现故障,第二个Jobtracker将可以为请求提供服务。一次只有一个作业跟踪器(活动)可用于服务请求,第二个JT(备用)将以只读模式运行。Jobtracker HA需要zookeeper实例,Failure over(switching)可以配置为Manaul或Automcatic。自动故障切换需要另一个名为Failover Controller (FC)的进程。在当前版本中,如果活动JT失败,所有正在运行的作业都将暂停,但新作业将自动提交给新JT。此功能在当前版本中不可用。

MR2是使用YARN的第二代mapreduce,Resource Manager(RM)是YARN中的主服务,RM也可以配置为活动-待机模式。RM故障不会影响正在运行的作业/应用程序。

名称节点HA

Namenode HA很重要。名称节点HA也可以在活动-待机模式下配置(最多2个名称节点实例)。Quorum based Journaling是一种被广泛接受的方法,它在内部使用动物园管理员。一次只有一个名称节点处于活动状态。

Secondary Namenode(SNN)不是Standby Namenode(SN),反之亦然,SNN在非HA配置中有不同的功能,Namenode HA设置不需要SNN,因为SN Namenode执行检查点(SNN的功能)

Processes Namenode HA

  • 活动名称节点
  • 备用名称节点
  • 故障转移控制器:用于围栏以避免大脑分裂的情况
  • Jounalnodes(至少需要3个实例):命名空间修改将被记录到日志节点,备用名称节点从中读取。为了避免大脑分裂的问题,一次只允许写一个namenode

Hadoop中内置了High availability机制已有一段时间。"Secondary NameNode"、"Backup JobTracker"将作为各自对应节点的热备份。

过去的大部分"SPOF"都在最近的hadoop版本中被删除了。

以下文档对此进行了深入解释。

  • Hortonworks HA文件
  • Cloudera HA文档

希望能有所帮助。

最新更新