减轻Hadoop的跟腱

时间:2015-06-25 14:21:46

标签: java hadoop fault-tolerance resiliency

我刚刚给了this Hadoop tuorial一个说明Hadoop有一个致命弱点' JobTracker中的肌腱(单点故障):

  

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

还有this article表明NameNode是SPOF:

  

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

单点故障很糟糕,mkay? 什么策略/技巧/工具/等等。可以做到规避这些SPOF并使Hadoop冗余,容忍和弹性(流行语警报!)?

2 个答案:

答案 0 :(得分:1)

Hadoop内置了一些High availability机制。 ' Secondary NameNode',' Backup JobTracker'将作为各自对手的热门备份。

过去的大多数' SPOF'已经被最近的hadoop版本淘汰了。

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

希望它有所帮助。

答案 1 :(得分:1)

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

Jobtracker HA。

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

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

Namenode HA

Namenode HA很重要。 Namenode HA也可以配置为活动 - 备用模式(最多2个名称节点实例)。 Quorum based Journaling是广泛接受的方法,它在内部使用zookeeper。一次只能激活一个名称节点。

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

Processes Namenode HA

  • Active namenode
  • Standby namenode
  • 故障转移控制器:用于防护以避免裂脑情况。
  • Jounalnodes(需要最少3个实例):命名空间修改将 记录到Journal节点,Standby namenode从那里读取。为了避免裂脑问题,一次只允许一个namenode写入。