NameNode hoge beschikbaarheid met Quorum Journal Manager



NameNode High Availability is een van de belangrijkste functies van Hadoop 2.0 NameNode High Availability met Quorum Journal Manager wordt gebruikt om bewerkingslogboeken te delen tussen de Active en Standby NameNodes.

Dit is een van de belangrijkste kenmerken van Hadoop 2.0. Voordat u de functie Namenode High Availability bespreekt, is het essentieel om te weten wat Quorum is. Quorum is een algemene term die wordt gebruikt bij clustering waarbij we zeggen dat een bepaald cluster stabiel is. Quorum geeft een lijst met machines en helpt bij het bepalen van de gezondheid van het cluster. Er zijn twee soorten quorum: verwacht quorum en berekend quorum.





NameNode hoge beschikbaarheid met Quorum Journal Manager (QJM)

Vóór Hadoop 2.0 was de NameNode een single point of failure (SPOF) in een HDFS-cluster. Elk cluster had een enkele NameNode en als die machine niet beschikbaar was, zou de cluster in zijn geheel niet beschikbaar zijn totdat de NameNode opnieuw werd opgestart of op een aparte machine werd gestart. In een klassiek HA-cluster zijn twee afzonderlijke machines geconfigureerd als NameNodes. Op elk moment bevindt een van de NameNodes zich in de actieve status en de andere in de standby-status. De Active NameNode is verantwoordelijk voor alle clientbewerkingen in het cluster, terwijl de stand-by gewoon als slaaf fungeert en voldoende status behoudt om een ​​snelle failover te bieden.

Om ervoor te zorgen dat het stand-byknooppunt zijn status gecoördineerd houdt met het actieve knooppunt, communiceren beide knooppunten met een groep afzonderlijke daemons die ‘JournalNodes’ (JN's) worden genoemd. Wanneer een naamruimte-wijziging wordt uitgevoerd door het actieve knooppunt, wordt een record van de aangebrachte wijzigingen vastgelegd in JournalNodes. Het stand-byknooppunt kan de gewijzigde informatie van de JN's lezen en controleert deze regelmatig op wijzigingen. Als het stand-byknooppunt de wijzigingen ziet, past het deze vervolgens toe op zijn eigen naamruimte. In het geval van een failover zal de stand-by ervoor zorgen dat alle wijzigingen van de JounalNodes zijn gelezen voordat de status wordt gewijzigd in ‘Actieve status’. Dit garandeert dat de naamruimtestatus volledig wordt gesynchroniseerd voordat een failover plaatsvindt.



Voor een snelle failover is het essentieel dat het stand-byknooppunt de bijgewerkte en actuele informatie over de locatie van blokken in het cluster moet hebben. Om dit te laten gebeuren, zijn de DataNodes geconfigureerd met de locatie van beide NameNodes en sturen ze bloklocatie-informatie en heartbeats naar beide.

Het is essentieel dat slechts één van de NameNodes tegelijk actief moet zijn. Anders zou de naamruimtestatus tussen de twee verschillen en tot gegevensverlies of foutieve resultaten leiden. Om dit te voorkomen, staan ​​de JournalNodes slechts één enkele NameNode per keer toe aan een schrijver. Tijdens een failover neemt de NameNode die actief moet worden de verantwoordelijkheid voor het schrijven naar de JournalNodes over.

Heeft u een vraag voor ons? Vermeld ze in het opmerkingengedeelte en we nemen contact met u op.



Gerelateerde berichten:

hoe u een dynamische array in java maakt

Overzicht van Hadoop 2.0 Cluster Architecture Federation