Hadoop架构中的Namenode是单点故障。
拥有大型Hadoop群集的人如何应对此问题?
是否有一个行业认可的解决方案运行良好,其中一个辅助Namenode接管以防主要的一个失败?
答案 0 :(得分:24)
雅虎拥有certain recommendations用于不同群集大小的配置设置,以便将NameNode故障考虑在内。例如:
Hadoop集群中的单点故障是NameNode。虽然丢失任何其他计算机(间歇性或永久性)不会导致数据丢失,但NameNode丢失会导致群集不可用。 NameNode数据的永久丢失将导致群集的HDFS无法运行。
因此,在此配置中应采取另一个步骤来备份NameNode元数据
Facebook使用a tweaked version of Hadoop作为其数据仓库;它具有some optimizations,专注于NameNode可靠性。除了github上提供的补丁之外,Facebook似乎专门使用AvatarNode来快速切换主要和次要NameNode。 Dhruba Borthakur's blog包含几个其他条目,提供对NameNode的进一步见解,作为单点故障。
修改:Further info about Facebook's improvements to the NameNode。
答案 1 :(得分:6)
Hadoop 2.x版本已推出 Namenode 的高可用性。
可以通过两种模式实现 - With NFS和With QJM
但 Quorum Journal Manager(QJM )的高可用性是首选方案。
在典型的HA群集中,两台独立的计算机配置为NameNode。在任何时间点,其中一个NameNode处于活动状态,另一个处于待机状态。 Active NameNode 负责集群中的所有客户端操作,而Standby只是充当从属服务器,维持足够的状态以在必要时提供快速故障转移。
查看下面的SE问题,它解释了完整的故障转移过程。
Secondary NameNode usage and High availability in Hadoop 2.x
答案 2 :(得分:1)
大型Hadoop集群有数千个数据节点和一个名称节点。故障概率随着机器数量线性增加(其他条件相同)。因此,如果Hadoop无法应对数据节点故障,则无法扩展。由于仍然只有一个名称节点,单点故障(SPOF)存在,但失败的可能性仍然很低。
令人遗憾的是,Bkkbrad关于Facebook为名称节点添加故障转移功能的答案是正确的。