Hadoop Namenode:单点故障
题
Hadoop体系结构中的Namenode是一个单点故障。
大大的Hadoop簇的人如何应对这个问题?
是否有一个被行业所接受的解决方案效果很好,即辅助Namenode接管如果主要的Namenode失败了?
解决方案
雅虎有 某些建议 对于不同集群大小的配置设置,以考虑Namenode故障。例如:
Hadoop群集中的单点是Namenode。尽管任何其他机器的丢失(间歇性地或永久性)不会导致数据丢失,但Namenode损失导致群集不可用。 Namenode数据的永久丢失将使群集的HDF无法操作。
因此,应在此配置中采取另一个步骤来备份Namenode元数据
Facebook使用 hadoop的调整版本 为其数据仓库;它有 一些优化 关注Namenode的可靠性。除了GitHub上可用的补丁外,Facebook似乎使用 avatarnode 专门用于快速在主要和次级纳米诺德座之间切换。 Dhruba Borthakur的博客 包含其他几个条目,将进一步的见解作为单个故障点。
其他提示
高可用性 Namenode 已引入 hadoop 2.x版本。
但是高度可用 Quorum Journal Manager(QJM)是首选选项。
在典型的HA群集中,将两台单独的机器配置为Namenodes。在任何时间点,正好的一个namenodes处于活跃状态,另一个处于待机状态。这 活性名称 负责集群中的所有客户操作,而备用仅仅是一个奴隶,保持足够的状态以在必要时提供快速的故障转移。
请查看以下SE问题,该问题解释了完整的故障转移过程。
大型Hadoop群集具有数千个数据节点和一个名称节点。故障的概率随机器计数线性上升(所有其他都相等)。因此,如果Hadoop无法应对数据节点故障,则不会扩展。由于仍然只有一个名称节点单点故障(SPOF),但失败的可能性仍然很低。
BKKBRAD关于Facebook的答案添加了该名称Node的故障转移功能的答案是正确的。