sql >> Databáze >  >> NoSQL >> HBase

HDFS NameNode Vysoká dostupnost v Hadoop

V našem předchozím blogu jsme studovaliÚvod Hadoop a Funkce Hadoop , Nyní v tomto blogu podrobně pokryjeme funkci HDFS NameNode High Availability.

Nejprve probereme HDFS NemNode High Availability Architecture a dále implementaci Hadoop High Availability Architecture pomocí Quorum Journal Nodes a sdíleného úložiště.

High Availability NameNode HDFS

V HDFS , data jsou vysoce dostupná a přístupná i přes selhání hardwaru. HDFS je nejspolehlivější úložný systém navržený pro ukládání velmi velkých souborů.

HDFS se řídí topologií master/slave. Ve kterém hlavním serveru je NameNode a slaves je DataNode . NameNode ukládá metadata. Metadata zahrnují počet bloků, jejich umístění, repliky a další podrobnosti. Pro rychlejší načítání dat jsou v masteru k dispozici metadata. NameNode udržuje a přiděluje úkoly podřízenému uzlu.

NameNode byl Single Point of Failure (SPOF) před Hadoopem 2.0. Cluster HDFS měl jeden NameNode. Pokud NameNode selže, celý cluster se zhroutí.

Jediný bod selhání omezuje vysokou dostupnost následujícími způsoby:

  • Pokud dojde ke spuštění jakékoli neplánované události, jako je pád uzlu, pak bude cluster nedostupný, pokud operátor nerestartuje nový jmenný uzel.
  • Také plánované činnosti údržby, jako jsou upgrady hardwaru na NameNode, povedou k výpadku clusteru Hadoop.

HDFS NameNode High Availability Architecture

Uvedení Hadoopu 2.0 překonává tentoSPOF poskytováním podpory více NameNode. Architektura HDFS NameNode High Availability poskytuje možnost provozovat dva redundantní NameNode ve stejném clusteru v aktivní/pasivní konfiguraci s aktivním pohotovostním režimem.

  • Active NameNode  – Zvládá všechny operace klienta HDFS v clusteru HDFS.
  • Pasivní NameNode  – Je to pohotovostní jmenný uzel. Má podobná data jako aktivní NameNode.

Kdykoli tedy selže Active NameNode, pasivní NameNode převezme veškerou odpovědnost aktivního uzlu. Klastr HDFS tedy nadále funguje.

Problémy s udržováním konzistence v clusteru HDFS High Availability jsou následující:

  • Active a Standby NameNode by měly být vždy vzájemně synchronizované, tj. měly by mít stejná metadata. Toto povolení k obnovení clusteru Hadoop do stejného stavu jmenného prostoru, ve kterém došlo k jeho zhroucení. A to nám zajistí rychlé převzetí služeb při selhání.
  • V jednu chvíli by měl být aktivní pouze jeden NameNode. V opačném případě dva NameNode povedou k poškození dat. Tento scénář nazýváme „Scénář rozděleného mozku “, kde se shluk rozdělí na menší shluk. Každý věří, že je to jediný aktivní shluk. „Oplocení“ se vyhýbá takovému oplocení. Oplocení je proces zajišťující, že v určitou dobu zůstane aktivní pouze jeden NameNode.

Implementace architektury Hadoop High Availability Architecture

Dva NameNode běží současně v HDFS NameNode High Availability Architecture. Klient HDFS může implementovat konfiguraci Active a Standby NameNode následujícími dvěma způsoby:

  • Používání uzlů deníku kvora
  • Používání sdíleného úložiště

1. Použití uzlů žurnálu kvora

Uzly žurnálu kvora je implementace HDFS. QJN poskytuje protokoly úprav. Umožňuje sdílet tyto protokoly úprav mezi aktivním a pohotovostním NameNode.

Standby Namenode komunikuje a synchronizuje se s aktivním NameNode pro vysokou dostupnost. Stane se tak pomocí skupiny démonů zvaných „Journal nodes“. Nodes žurnálu kvora běží jako skupina uzlů žurnálu. Měly by tam být alespoň tři žurnálové uzly.

Pro N žurnálových uzlů může systém tolerovat maximálně (N-1)/2 selhání. Systém tak nadále funguje. Takže u tří žurnálových uzlů může systém tolerovat selhání jednoho {(3-1)/2} z nich.

Kdykoli aktivní uzel provede jakoukoli změnu, zaznamená změnu do všech uzlů žurnálu.

Pohotovostní uzel čte úpravy z uzlů deníku a aplikuje je na svůj vlastní jmenný prostor konstantním způsobem. V případě převzetí služeb při selhání pohotovostní režim zajistí, že přečetl všechny úpravy z uzlů žurnálu, než se povýší do aktivního stavu. Tím je zajištěno, že stav jmenného prostoru je zcela synchronizován dříve, než dojde k selhání.

Aby bylo zajištěno rychlé převzetí služeb při selhání, musí mít pohotovostní uzel aktuální informace o umístění datových bloků v clusteru. Aby se tak stalo, IP adresa obou NameNode je dostupná všem datovým uzlům a ty odesílají informace o umístění bloku a srdeční tep do obou NameNode.

Oplocení NameNode

Pro správnou činnost HA clusteru by měl být v daném okamžiku aktivní pouze jeden z NameNodes. V opačném případě by se stav jmenného prostoru mezi dvěma jmennými uzly lišil. Oplocení je tedy proces k zajištění této vlastnosti v clusteru.

  • Uly žurnálu provádějí toto oplocení tak, že umožňují, aby zapisovatelem byl vždy pouze jeden NameNode.
  • Pohotovostní NameNode přebírá odpovědnost za zápis do žurnálových uzlů a zakazuje jakémukoli jinému NameNode zůstat aktivní.
  • Konečně může nový aktivní NameNode vykonávat své činnosti.

2. Používání sdíleného úložiště

Pohotovostní a aktivní NameNode se vzájemně synchronizují pomocí „sdíleného úložného zařízení“. Pro tuto implementaci musí mít aktivní NameNode i pohotovostní Namenode přístup ke konkrétnímu adresáři na sdíleném úložném zařízení (tj. síťový souborový systém).

Když aktivní NameNode provede jakoukoli úpravu jmenného prostoru, zaprotokoluje záznam o úpravě do souboru protokolu úprav uloženého ve sdíleném adresáři. Pohotovostní NameNode sleduje tento adresář pro úpravy, a když dojde k úpravám, pohotovostní NameNode je použije na svůj vlastní jmenný prostor. V případě selhání pohotovostní NameNode zajistí, že přečetl všechny úpravy ze sdíleného úložiště, než se povýší do aktivního stavu. Tím je zajištěno, že stav jmenného prostoru je před převzetím služeb při selhání zcela synchronizován.

Aby se zabránilo „scénáři rozděleného mozku“, ve kterém se stav jmenného prostoru liší mezi dvěma NameNode, musí správce nakonfigurovat alespoň jednu metodu oplocení pro sdílené úložiště.

Závěr

Hadoop 2.0 HDFS HA ​​tedy poskytuje jeden aktivní NameNode a jeden pohotovostní NameNode. Některá nasazení však vyžadují vysoký stupeň odolnosti proti chybám . Hadoop nová verze 3.0, umožňuje uživateli spouštět mnoho pohotovostních NameNodes.

Například konfigurace pěti žurnálových uzlů a tří NameNode. Výsledkem je, že hadoop cluster je schopen tolerovat selhání dvou uzlů namísto jednoho.

Podělte se prosím o své zkušenosti a návrhy týkající se HDFS NameNode High Availability v sekci komentářů níže.


  1. redis Zdá se, že server ukončil spojení

  2. Odstranění database.yml při použití Mongoid v Rails 3.2

  3. redis:zálohování dump.rdb

  4. Mongo DB najde všechny záznamy s nejvyšší hodnotou v závislosti na klíčovém poli