Video: Hadoop Rack Awareness 2024
Ofta i Hadops barndom var en stor diskussion centrerad på NameNodes representation av en enda punkt av fel. Hadoop har i allmänhet alltid haft en robust och feltolerant arkitektur, med undantag för detta nyckelområde. Utan NameNode finns det inget Hadoop-kluster.
Med Hadoop 2 kan du konfigurera HDFS så att det finns en Active NameNode och en Standby NameNode. Standby NameNode måste vara på en dedikerad huvudnod som konfigureras identiskt med huvudnoden som används av Active NameNode.
Standby NameNode sitter inte passivt medan NameNode hanterar alla blockadressförfrågningar. Standby NameNode, laddad med uppgiften att hålla blockens läge och blockera metadata i minnet, hanterar HDFS-kontrolleringsansvaret.
Active NameNode skriver journalposter på filändringar till majoriteten av JournalNode-tjänsterna, som körs på masternoderna. ( Obs: HDFS hög tillgänglighetslösning kräver minst tre huvudnoder, och om det finns fler kan det bara vara ett udda nummer.)
Om ett fel uppstår läser Standby Node först alla färdiga journalposter (där en majoritet av Journal Noder har en post, med andra ord) för att säkerställa att den nya Active NameNode överensstämmer helt med klustret.
Zookeeper används för att övervaka Active NameNode och hantera failover-logistiken om Active NameNode blir otillgänglig. Både Active och Standby NameNodes har dedikerade Zookeeper Failover Controllers (ZFC) som utför övervaknings- och failover-uppgifterna. I händelse av ett fel informerar ZFC Zookeeper-instanserna på klustret, som sedan väljer ett nytt Active NameNode.
Apache Zookeeper tillhandahåller koordinerings- och konfigurationstjänster för distribuerade system, så det är inte konstigt att vi ser det användas överallt i Hadoop.