25

Hadoop 架构中的 Namenode 是单点故障。

拥有大型 Hadoop 集群的人如何应对这个问题?

是否有一个行业接受的、运行良好的解决方案,其中一个辅助 Namenode 接管以防主 Namenode 出现故障?

4

3 回答 3

25

雅虎对不同集群大小的配置设置有一些建议,以考虑 NameNode 故障。例如:

Hadoop 集群中的单点故障是 NameNode。虽然任何其他机器的丢失(间歇性或永久)不会导致数据丢失,但 NameNode 丢失会导致集群不可用。NameNode 数据的永久丢失将导致集群的 HDFS 无法运行。

因此,在此配置中应采取另一个步骤来备份 NameNode 元数据

Facebook在其数据仓库中使用了经过调整的 Hadoop 版本;它有一些专注于 NameNode 可靠性的优化。除了 github 上提供的补丁之外,Facebook 似乎专门使用AvatarNode在主要和次要 NameNode 之间快速切换。 Dhruba Borthakur 的博客包含其他几个条目,这些条目提供了对作为单点故障的 NameNode 的进一步见解。

编辑:有关 Facebook 对 NameNode 改进的更多信息

于 2010-12-21T19:51:44.420 回答
7

Namenode的高可用性已在Hadoop 2.x 版本中引入。

它可以通过两种模式实现——使用 NFS使用 QJM

但是Quorum Journal Manager (QJM ) 的高可用性是首选选项。

在典型的 HA 集群中,两台独立的机器被配置为 NameNode。在任何时间点,只有一个 NameNode 处于 Active 状态,而另一个处于 Standby 状态。Active NameNode负责集群中的所有客户端操作,而 Standby 只是充当从属节点,保持足够的状态以在必要时提供快速故障转移。

看看下面的 SE 问题,它解释了完整的故障转移过程。

Hadoop 2.x 中的辅助 NameNode 使用和高可用性

Hadoop Namenode 故障转移过程如何工作?

于 2016-01-18T08:35:42.180 回答
1

大型 Hadoop 集群有数千个数据节点和一个名称节点。故障概率随机器数量线性上升(其他条件相同)。因此,如果 Hadoop 不应对数据节点故障,它就无法扩展。由于仍然只有一个名称节点,因此存在单点故障 (SPOF),但故障概率仍然很低。

可悲的是,Bkkbrad 关于 Facebook 将故障转移功能添加到名称节点的答案是正确的。

于 2010-12-21T22:24:02.167 回答