Casa Finanza personale Tiene traccia dei blocchi dati con NameNode in HDFS - dummies

Tiene traccia dei blocchi dati con NameNode in HDFS - dummies

Sommario:

Video: Hadoop Rack Awareness 2025

Video: Hadoop Rack Awareness 2025
Anonim

Il NameNode funge da rubrica per Hadoop Distributed File System (HDFS) perché non conosce solo quali blocchi costituiscono singoli file ma anche dove sono memorizzati ciascuno di questi blocchi e le loro repliche. Quando un utente memorizza un file in HDFS, il file viene diviso in blocchi di dati e tre copie di questi blocchi di dati vengono archiviate in nodi slave in tutto il cluster Hadoop.

Ci sono molti blocchi di dati da tenere sotto controllo. Come ci si potrebbe aspettare, sapere dove sono sepolti i corpi rende il NameNode un componente estremamente importante in un cluster Hadoop. Se il NameNode non è disponibile, le applicazioni non possono accedere ai dati memorizzati in HDFS.

Se si dà un'occhiata alla figura seguente, è possibile vedere il daemon NameNode in esecuzione su un server nodo principale. Tutte le informazioni di mappatura relative ai blocchi di dati e ai loro file corrispondenti sono memorizzate in un file chiamato.

HDFS è un file system di journaling, il che significa che qualsiasi modifica di dati viene registrata in un giornale di modifica che tiene traccia degli eventi dall'ultimo checkpoint - l'ultima volta in cui il registro di modifica è stato unito. In HDFS, il giornale di modifica viene mantenuto in un file denominato che è memorizzato sul NameNode.

Avvio e funzionamento del NameNode

Per capire come funziona il NameNode, è utile dare un'occhiata a come viene avviato. Poiché lo scopo del NameNode è di informare le applicazioni di quanti blocchi di dati devono elaborare e di tenere traccia della posizione esatta in cui sono archiviati, ha bisogno di tutte le posizioni dei blocchi e dei mapping da block-to-file disponibili in RAM.

Questi sono i passaggi necessari per il NameNode. Per caricare tutte le informazioni necessarie al NameNode dopo l'avvio, si verifica quanto segue:

  1. Il NameNode carica il file in memoria.

  2. Il NameNode carica il file e riproduce le modifiche registrate su giornale per aggiornare i metadati del blocco già in memoria.

  3. I daemon DataNode inviano i report del blocco NameNode.

    Per ogni nodo slave, è presente un report a blocchi che elenca tutti i blocchi di dati memorizzati e descrive lo stato di salute di ognuno.

Una volta completato il processo di avvio, il NameNode ha un'immagine completa di tutti i dati memorizzati in HDFS ed è pronto a ricevere richieste di applicazioni dai client Hadoop.

Poiché i file di dati vengono aggiunti e rimossi in base alle richieste dei client, le modifiche vengono scritte sui volumi del disco del nodo slave, gli aggiornamenti del journal vengono apportati al file e le modifiche si riflettono nelle posizioni dei blocchi e nei metadati memorizzati nella memoria del NameNode.

Durante tutta la vita del cluster, i daemon DataNode inviano gli heartbeat NameNode (un segnale rapido) ogni tre secondi, a indicare che sono attivi.(Questo valore predefinito è configurabile.) Ogni sei ore (di nuovo, un valore predefinito configurabile), i DataNodes inviano al NameNode un report a blocchi che descrive quali sono i blocchi di file sui loro nodi. In questo modo, il NameNode ha sempre una vista corrente delle risorse disponibili nel cluster.

Scrittura dei dati

Per creare nuovi file in HDFS, è necessario eseguire la seguente procedura:

  1. Il client invia una richiesta al NameNode per creare un nuovo file.

    Il NameNode determina quanti blocchi sono necessari e al client viene concesso un lease per la creazione di questi nuovi blocchi di file nel cluster. Come parte di questo contratto, il cliente ha un limite di tempo per completare l'attività di creazione. (Questo limite di tempo assicura che lo spazio di archiviazione non venga occupato da applicazioni client non riuscite.)

  2. Il client scrive quindi le prime copie dei blocchi di file sui nodi slave utilizzando il lease assegnato dal NameNode.

    Il NameNode gestisce le richieste di scrittura e determina dove devono essere scritti i blocchi di file e le loro repliche, bilanciando disponibilità e prestazioni. La prima copia di un blocco di file viene scritta in un rack e la seconda e la terza copia vengono scritte su un rack diverso rispetto alla prima copia, ma in diversi nodi slave nello stesso rack. Questa disposizione riduce al minimo il traffico di rete assicurando che nessun blocco di dati si trovi nello stesso punto di errore.

  3. Poiché ogni blocco viene scritto su HDFS, un processo speciale scrive le rimanenti repliche sugli altri nodi slave identificati dal NameNode.

  4. Dopo che i daemon DataNode confermano che le repliche dei blocchi di file sono state create, l'applicazione client chiude il file e notifica il NameNode, che quindi chiude il lease aperto.

Lettura dei dati

Per leggere i file da HDFS, dovrebbe essere eseguita la seguente procedura:

  1. Il client invia una richiesta al NameNode per un file.

    Il NameNode determina quali blocchi sono coinvolti e sceglie, in base alla vicinanza generale dei blocchi tra loro e al client, il percorso di accesso più efficiente.

  2. Il client accede quindi ai blocchi utilizzando gli indirizzi forniti dal NameNode.

Bilanciamento dei dati nel cluster Hadoop

Nel tempo, con combinazioni di pattern di ingestione dei dati non uniformi (in cui alcuni nodi slave potrebbero avere più dati scritti) o errori del nodo, è probabile che i dati vengano distribuiti in modo non uniforme tra i rack e i nodi slave nel tuo cluster Hadoop.

Questa distribuzione non uniforme può avere un impatto negativo sulle prestazioni perché la richiesta sui singoli nodi slave diventa sbilanciata; i nodi con pochi dati non saranno completamente utilizzati; e i nodi con molti blocchi saranno abusati. ( Nota: L'uso eccessivo e sottoutilizzato si basano sull'attività del disco, non su CPU o RAM.)

HDFS include un'utilità di bilanciamento per ridistribuire i blocchi da nodi slave sovrautilizzati a quelli sottoutilizzati mantenendo la politica di inserimento blocchi su diversi nodi e rack slave. Gli amministratori di Hadoop dovrebbero controllare regolarmente l'integrità di HDFS e, se i dati vengono distribuiti in modo non uniforme, dovrebbero richiamare l'utilità di bilanciamento.

Design del server master NameNode

A causa della sua natura mission-critical, il server master che esegue il daemon NameNode richiede requisiti hardware notevolmente diversi rispetto a quelli per un nodo slave. Più significativamente, i componenti di livello aziendale devono essere utilizzati per ridurre al minimo la probabilità di un'interruzione. Inoltre, avrai bisogno di abbastanza RAM per caricare in memoria tutti i metadati e i dati sulla posizione di tutti i blocchi di dati archiviati in HDFS.

Tiene traccia dei blocchi dati con NameNode in HDFS - dummies

Scelta dell'editore

Il programma in cinque passaggi per superare la menopausa - dummy

Il programma in cinque passaggi per superare la menopausa - dummy

Alcune donne capiscono a malapena che la menopausa è loro. Altre donne, tuttavia, sono meno fortunate. Se sei uno di questi, prendi in mano questi pochi modi per rendere la tua esperienza più facile per te stesso: capisci e accetta che stai attraversando una transizione naturale, proprio come la pubertà. Fortunatamente, sei più vecchio e più saggio di te ...

Menopausa For Dummies Cheat Sheet (edizione UK) - dummies

Menopausa For Dummies Cheat Sheet (edizione UK) - dummies

Menopausa segna la fine della fase riproduttiva della tua vita e così è un momento significativo di cambiamento fisico, emotivo e mentale per molte donne ma, per generazioni, donne di tutte le età hanno vagato alla cieca in menopausa senza sapere cosa aspettarsi. Qui puoi scoprire alcune delle nozioni di base.

Perimenopausa: facilitare la transizione dalle mestruazioni alla menopausa - manichini

Perimenopausa: facilitare la transizione dalle mestruazioni alla menopausa - manichini

Mestruazioni e menopausa sono ben noti biologici pietre miliari nella vita di una femmina. Contrariamente al pensiero popolare, la menopausa non è il periodo di mesi o anni in cui una donna sta "attraversando il cambiamento". "Questo lasso di tempo è chiamato perimenopausa. La menopausa è una data effettiva nel tempo. In particolare, è il 12 ° anniversario dell'ultimo ciclo mestruale di una donna. ...

Scelta dell'editore

Come utilizzare il filtro automatico personalizzato su una tabella di Excel - dummies

Come utilizzare il filtro automatico personalizzato su una tabella di Excel - dummies

È Possibile creare un filtro automatico personalizzato . Per fare ciò, seleziona il comando Filtro testo dal menu della tabella e scegli una delle opzioni di filtro del testo. Indipendentemente dall'opzione di filtro del testo selezionata, Excel visualizza la finestra di dialogo Filtro automatico personalizzato. Questa finestra di dialogo consente di specificare con estrema precisione quali record si desidera ...

Come utilizzare la funzione DPRODUCT in un database Excel - dummies

Come utilizzare la funzione DPRODUCT in un database Excel - dummies

DPRODUCT moltiplica i valori che corrispondono al criterio in un database Excel. Questo è potente ma anche in grado di produrre risultati che non sono l'intenzione. In altre parole, è una cosa da aggiungere e ricavare una somma. Questa è un'operazione comune su un set di dati. Osservando la seguente figura, è possibile ...

Come utilizzare la funzione DPRODUCT in Excel - dummy

Come utilizzare la funzione DPRODUCT in Excel - dummy

La funzione DPRODUCT in Excel è strana. La funzione DPRODUCT moltiplica i valori nei campi da un elenco di database in base ai criteri di selezione. Perché vorresti farlo? Chissà. La funzione utilizza la sintassi = DPRODUCT (database, campo, criteri) in cui il database è un riferimento all'intervallo alla tabella di Excel che contiene il valore desiderato ...

Scelta dell'editore

Programmazione con Java: riutilizzo dei nomi nella tua app per Android - dummies

Programmazione con Java: riutilizzo dei nomi nella tua app per Android - dummies

Ci sono un paio di cose a cui vuoi pensare quando riutilizzi i nomi nella tua app per Android. È possibile dichiarare due variabili Java - bag1 e bag2 - per fare riferimento a due diversi oggetti BagOfCheese. Va bene. Ma a volte, avere solo una variabile e riutilizzarla per il secondo oggetto funziona altrettanto bene, ...

Java: Mettere a frutto l'uso della classe - dummies

Java: Mettere a frutto l'uso della classe - dummies

La classe Employee nell'elenco non ha alcun metodo principale , quindi non c'è un punto di partenza per l'esecuzione del codice. Per risolvere questo problema, il programmatore scrive un programma separato con un metodo principale e utilizza tale programma per creare istanze Employee. Questo elenco di codici mostra una classe con un metodo principale - uno che inserisce il ...

Classi wrapper java - dummies

Classi wrapper java - dummies

La differenza tra tipi primitivi e tipi di riferimento è una delle funzionalità più controverse di Java e gli sviluppatori si lamentano spesso sulle differenze tra valori primitivi e valori di riferimento. Ogni tipo primitivo viene cotto nella lingua. Java ha otto tipi primitivi. Ogni tipo di riferimento è una classe o un'interfaccia. È possibile definire il proprio ...