In onze vorige blog, hebben we bestudeerd Hadoop Introductie en Eigenschappen van Hadoop , Nu in deze agenda, gaan we de HDFS NameNode High Availability-functie in detail te dekken.
Allereerst zullen we de HDFS NemNode High Availability Architecture te bespreken, naast met de implementatie van Hadoop High Availability architectuur met behulp van Quorum Journal Knooppunten en Shared Storage.
HDFS NameNode High Availability
In HDFS , Data is zeer toegankelijk en ondanks hardwarestoring. HDFS is de meest betrouwbare opslag-systeem is ontworpen voor het opslaan van zeer grote bestanden.
HDFS volgt master / slave topologie. In die meester is NameNode en slaven is DataNode . NameNode slaat meta-data. Metadata zijn het aantal blokken, hun locatie, replica's, en andere details. Voor de snellere ophalen van data, metadata is beschikbaar in de master. NameNode onderhoudt en rechtverkrijgenden taken aan de slave-knooppunt.
NameNode was de single point of failure (SPOF) voor Hadoop 2.0. HDFS cluster had een NameNode. Als de NameNode uitvalt, het hele cluster naar beneden gaat.
Single point of failure beperkt hoge beschikbaarheid op de volgende manieren:
- Als een onvoorziene gebeurtenis triggers, zoals knooppunt crasht, dan cluster onbeschikbaar zou zijn, tenzij een operator hernieuwd de nieuwe namenode.
- Ook gepland onderhoud activiteiten, zoals hardware-upgrades op de NameNode zal resulteren in downtime van de Hadoop cluster.
HDFS NameNode High Availability architectuur
Introductie van Hadoop 2,0 overwinnen this SPOF Voorts ondersteunt zij meerdere NameNode. HDFS NameNode High Availability architectuur biedt de mogelijkheid van het runnen van twee redundante NameNodes in hetzelfde cluster in een actieve / passieve configuratie met een hot stand-by.
- Active NameNode -. Het behandelt alle HDFS client operaties in de HDFS cluster
- Passief NameNode - Het is een stand-by namenode. Het heeft soortgelijke gegevens als actief NameNode.
Dus, wanneer Active NameNode mislukt, passieve NameNode zal de verantwoordelijkheid van de actieve knooppunt te nemen. Zo HDFS cluster blijft werken.
Problemen bij het handhaven van de samenhang van de beschikbaarheid cluster HDFS hoog zijn als volgt:
- Actief en Standby NameNode moet altijd synchroon met elkaar, dat wil zeggen dat zij dezelfde metadata moeten hebben. Deze vergunning aan de Hadoop cluster naar dezelfde namespace staat waar het werd crashte herstellen. En dit zal ons een snelle failover te hebben.
- Er mag slechts één NameNode tegelijk actief zijn. Anders zal twee NameNode leiden tot beschadiging van de gegevens. We noemen dit scenario als een “ Split-Brain Scenario ”, Waarbij een cluster wordt verdeeld in de kleinere cluster. Allen geloven dat het de enige actieve cluster. “Schermen” vermijdt dergelijke Schermen is een proces van ervoor te zorgen dat slechts één NameNode actief op een bepaald tijdstip blijft.
De uitvoering van Hadoop High Availability architectuur
Twee NameNodes draaien op hetzelfde moment in HDFS NameNode High Availability Architecture. HDFS client kan het actieve voorzieningen uit NameNode kunnen implementeren op twee manieren:
- Het gebruik van Quorum Journal Nodes
- Het gebruik van Shared Storage
1. Met behulp van Quorum Journal Nodes
Quorum Journal Nodes is een HDFS implementatie. QJN biedt bewerken logs. Het maakt het mogelijk om deze te bewerken logs tussen de actieve en de standby NameNode delen.
Standby Namenode communiceert en synchroniseert met de actieve NameNode voor hoge beschikbaarheid. Het zal gebeuren door een groep van daemons genaamd “Journal nodes”. Het Quorum Journal Nodes loopt als een groep van tijdschrift knooppunten. Ten minste drie tijdschrift knooppunten moet er zijn.
Voor N journal knooppunten, kan het systeem hoogstens (N-1) / 2 fouten tolereren. Het systeem blijft dus werk. Dus, voor drie tijdschrift knooppunten, kan het systeem het falen van een {(3-1) / 2} van hen tolereren.
Wanneer een actieve knooppunt voert elke wijziging, logt wijziging van alle logboeken nodes.
De standby knooppunt leest de bewerkingen van het tijdschrift knooppunten en ook voor de eigen naamruimte op een constante wijze. In het geval van failover, zal de standby ervoor zorgen dat zij over alle bewerkingen van het tijdschrift knooppunten heeft gelezen, voordat hij zichzelf te bevorderen naar de actieve toestand. Dit zorgt ervoor dat de namespace staat volledig gesynchroniseerd voordat er een storing optreedt.
Om een snelle failover te bieden, moet de standby knooppunt up-to-date informatie over de locatie van de gegevens blokken in het cluster. Om dit te laten gebeuren, het IP-adres van zowel de NameNode is beschikbaar voor alle datanodes en ze blok locatie-informatie en hartslagen te sturen naar zowel NameNode.
Schermen van NameNode
Voor de juiste werking van een HA cluster slechts één van de NameNodes dient tegelijk actief. Anders zou de namespace toestand afwijken tussen de twee NameNodes. Dus, schermen is een proces om dit pand in een cluster te waarborgen.
- Het tijdschrift knooppunten uitvoeren van deze schermen doordat slechts één NameNode aan de schrijver tegelijk zijn.
- De standby NameNode neemt de verantwoordelijkheid van het schrijven aan het tijdschrift knooppunten en verbieden alle andere NameNode actief te blijven.
- Ten slotte kan de nieuwe werkzame NameNode haar activiteiten uit te voeren.
2. Met behulp van Shared Storage
Standby en actieve NameNode synchroniseren met elkaar via “shared storage device”. Voor deze implementatie, zowel actieve NameNode en stand-by Namenode moet toegang hebben tot de specifieke directory op de gedeelde opslag apparaat (.i.e. Network File System).
Als actieve NameNode elke namespace wijziging uit te voeren, logt een verslag van de wijziging van een bewerking logbestand opgeslagen in de gedeelde map. De standby NameNode horloges van deze map voor bewerkingen, en wanneer wijzigingen voordoen, de standby NameNode past deze toe op zijn eigen namespace. In het geval van een storing, zal de standby NameNode ervoor te zorgen dat zij over alle wijzigingen van de gedeelde opslag is te lezen alvorens zich te profileren naar de actieve toestand. Dit zorgt ervoor dat de namespace staat volledig gesynchroniseerd voordat failover plaatsvindt.
Om de “split-brain scenario te voorkomen”, waarin de namespace toestand afwijkt tussen de twee NameNode, een moet worden geconfigureerd ten minste één hekwerk methode voor de gedeelde opslag.
Conclusie
Vandaar dat Hadoop 2,0 HDFS HA voor enkele actieve NameNode en single standby NameNode. Maar sommige implementaties hebben behoefte aan een hoge mate van fouttolerantie . Hadoop nieuwe versie 3.0, kan de gebruiker vele standby NameNodes uit te voeren.
Bijvoorbeeld, het configureren van vijf journalnodes en drie NameNode. Daardoor hadoop cluster kan het uitvallen van twee knooppunten tolereren plaats van één.
Gelieve te delen uw ervaringen en suggesties in verband met HDFS NameNode hoge beschikbaarheid in de commentaar hieronder.