Alta disponibilità NameNode con Quorum Journal Manager



NameNode High Availability è una delle funzionalità più importanti di Hadoop 2.0 NameNode High Availability con Quorum Journal Manager viene utilizzato per condividere i registri di modifica tra i NameNode attivi e in standby.

Questa è una delle caratteristiche più importanti di Hadoop 2.0. Prima di discutere la funzionalità Namenode High Availability, è essenziale sapere cos'è il Quorum. Quorum è un termine generico utilizzato nel clustering in cui diciamo che un particolare cluster è stabile. Quorum fornisce un elenco di macchine e aiuta a determinare lo stato di salute del cluster. Esistono due tipi di quorum: quorum previsto e quorum calcolato.





cos'è il metodo tostring in java

Alta disponibilità NameNode con Quorum Journal Manager (QJM)

Prima di Hadoop 2.0, NameNode era un singolo punto di errore (SPOF) in un cluster HDFS. Ogni cluster aveva un singolo NameNode e, se quella macchina non era disponibile, il cluster nel suo complesso non sarebbe stato disponibile fino a quando il NameNode non fosse stato riavviato o avviato su una macchina separata. In un cluster HA classico, due macchine separate sono configurate come NameNode. In qualsiasi momento, uno dei NameNode sarà in stato Active e l'altro in uno stato Standby. L'Active NameNode è responsabile di tutte le operazioni client nel cluster, mentre lo Standby agisce semplicemente come uno slave, mantenendo uno stato sufficiente per fornire un failover veloce.

Affinché il nodo Standby mantenga il suo stato coordinato con il nodo Attivo, entrambi i nodi comunicano con un gruppo di daemon separati chiamati 'JournalNodes' (JN). Quando una qualsiasi modifica dello spazio dei nomi viene eseguita dal nodo Attivo, registra un record delle modifiche apportate, nel JournalNodes. Il nodo Standby è in grado di leggere le informazioni modificate dai JN e li controlla regolarmente per eventuali modifiche. Quando il nodo Standby vede le modifiche, le applica quindi al proprio spazio dei nomi. In caso di failover, lo Standby si assicurerà di aver letto tutte le modifiche dai JounalNodes prima di cambiare il suo stato in 'Stato attivo'. Ciò garantisce che lo stato dello spazio dei nomi sia completamente sincronizzato prima che si verifichi un failover.



Per fornire un rapido failover, è essenziale che il nodo Standby disponga delle informazioni aggiornate e correnti relative alla posizione dei blocchi nel cluster. Affinché ciò avvenga, i DataNode vengono configurati con la posizione di entrambi i NameNode e inviano le informazioni sulla posizione del blocco e gli heartbeat a entrambi.

È essenziale che solo uno dei NameNode alla volta sia attivo. In caso contrario, lo stato dello spazio dei nomi potrebbe discostarsi tra i due e portare alla perdita di dati o a risultati errati. Per evitare ciò, JournalNodes consentirà solo un singolo NameNode a un writer alla volta. Durante un failover, il NameNode che deve diventare attivo assumerà la responsabilità di scrivere ai JournalNodes.

Hai domande per noi? Per favore menzionali nella sezione commenti e ti risponderemo.



Post correlati:

Panoramica di Hadoop 2.0 Cluster Architecture Federation

impostazione del percorso di classe in java