Hadoop如何确定Namenode已失败或无效?
我知道在Hadoop中,Namenode是保存所有元数据的主要点,通过心跳识别数据节点的失败,并在datanode失败的情况下选择复制数据。
如果Namenode失败,哪个系统识别出失败,以及恢复过程是什么?
答案 0 :(得分:8)
这取决于您所讨论的Hadoop版本。在Hadoop 2之前,Namenode
是单点故障,因此如果失败则意味着您的群集无法使用。在这种情况下,即使SecondaryNameNode
也无济于事,因为它仅用于检查点,而不是NameNode
的备份。当NameNode
失败时,像管理员这样的人必须手动重新启动NameNode
。
但是从Hadoop 2开始,你有更好的方法来处理NameNode
中的失败。您可以将2个冗余NameNodes
并排运行,这样,如果其中一个Namenodes
失败,群集将很快故障转移到另一个NameNode
。
它的工作方式非常透明,基本上DataNodes
会向NameNodes
发送报告,这样如果一个失败,另一个将准备好在活动模式下使用。对于客户端,它只是联系每个配置的NameNode
,直到找到活动的NameNode
。因此,如果收到回复说要在其他地方尝试,或者NameNode
没有回复,则表示需要使用其他{{1}}。
以下是从the Cloudera blog获取的模式,其中详细说明了这一点:
您还可以查看the HA article on the official documentation如何进行设置。