3

我刚刚给这个 Hadoop tuorial读了一遍,其中指出 Hadoop 在以下位置有跟腱(单点故障)JobTracker

JobTracker 是 Hadoop MapReduce 服务的单点故障,这意味着如果 JobTracker 出现故障,所有正在运行的作业都会停止。

还有这篇文章指出这NameNode是一个单点故障:

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

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

4

2 回答 2

1

High availability一段时间以来,Hadoop 中内置了一些机制。'Secondary NameNode'、'Backup JobTracker' 将作为各自对应的热备份。

最近的 hadoop 版本已经消除了大多数过去的“SPOF”。

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

希望能帮助到你。

于 2015-06-30T07:43:24.543 回答
1

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

作业跟踪器 HA。

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

MR2是使用YARN的第二代mapreduce,Resource Manager(RM)是YARN中的master service,RM也可以配置为Active-Standby模式。RM 故障不会影响正在运行的作业/应用程序。

Namenode HA

Namenode HA 很重要。Namenode HA 也可以配置为 Active-Standby 模式(最多 2 个 namenode 实例)。Quorum based Journaling是被广泛接受的方法,内部使用了zookeeper。一次只有一个名称节点处于活动状态。

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

Processes Namenode HA

  • 活跃的名称节点
  • 备用名称节点
  • 故障转移控制器:用于 Fencing 以避免脑裂情况。
  • Jounalnodes(需要最少 3 个实例):命名空间修改将记录到日志节点,备用命名节点从那里读取。一次只允许一个名称节点写入,以避免脑裂问题。
于 2015-07-01T05:32:01.127 回答