NameNode Vysoká dostupnost s Quorum Journal Manager



Vysoká dostupnost NameNode je jednou z nejdůležitějších funkcí Hadoop 2.0. Vysoká dostupnost NameNode s Quorum Journal Manager se používá ke sdílení protokolů úprav mezi aktivními a pohotovostními NameNodes.

Toto je jedna z nejdůležitějších funkcí Hadoop 2.0. Před diskusí o funkci Namenode High Availability je důležité vědět, co je to kvorum. Kvorum je obecný termín používaný v klastrování, kde říkáme, že konkrétní klastr je stabilní. Kvorum poskytuje seznam strojů a pomáhá určit stav clusteru. Existují dva typy kvora: očekávané kvorum a vypočítané kvorum.





NameNode Vysoká dostupnost s Quorum Journal Manager (QJM)

Před verzí Hadoop 2.0 byl NameNode v clusteru HDFS jediným bodem selhání (SPOF). Každý klastr měl jeden NameNode a pokud by tento stroj nebyl k dispozici, klastr jako celek by byl nedostupný, dokud nebyl NameNode restartován nebo spuštěn na samostatném počítači. V klasickém HA klastru jsou dva samostatné stroje konfigurovány jako NameNodes. V každém okamžiku bude jeden z NameNodes v aktivním stavu a druhý v pohotovostním stavu. Aktivní NameNode je zodpovědný za všechny operace klienta v klastru, zatímco pohotovostní režim jednoduše funguje jako slave a udržuje dostatečný stav pro rychlé převzetí služeb při selhání.

Aby pohotovostní uzel udržoval svůj stav koordinovaný s aktivním uzlem, oba uzly komunikují se skupinou samostatných démonů nazývaných „JournalNodes“ (JN). Je-li aktivní uzel proveden jakoukoli úpravu oboru názvů, zaznamená protokol provedených změn do JournalNodes. Uzel Standby je schopen číst pozměněné informace z JN a pravidelně je monitoruje ohledně změn. Jakmile pohotovostní uzel vidí změny, použije je na svůj vlastní jmenný prostor. V případě převzetí služeb při selhání se pohotovostní režim ujistí, že přečetl všechny změny z JounalNodes před změnou stavu na „Aktivní stav“. To zaručuje, že stav oboru názvů je plně synchronizován, než dojde k převzetí služeb při selhání.



Pro zajištění rychlého převzetí služeb při selhání je nezbytné, aby uzel Standby musel mít aktualizované a aktuální informace týkající se umístění bloků v klastru. Aby k tomu došlo, jsou DataNodes nakonfigurovány s umístěním obou NameNodes a oběma odesílají informace o poloze bloku a prezenční signály.

sloučit třídění implementace c ++

Je nezbytné, aby vždy mohl být aktivní pouze jeden z NameNodes. V opačném případě by se stav oboru názvů mezi těmito dvěma odchýlil a vedl by ke ztrátě dat nebo chybným výsledkům. Aby se tomu zabránilo, JournalNodes povolí pouze jeden NameNode spisovateli najednou. Během převzetí služeb při selhání přebírá odpovědnost za zápis do JournalNodes NameNode, který má být aktivní.

Máte na nás dotaz? Uveďte je prosím v sekci komentáře a my se vám ozveme.



Související příspěvky:

MVC architektura v Javě s příkladem

Přehled federace klastrové architektury Hadoop 2.0