Cos'è l'architettura del filato Hadoop e i suoi componenti
Pubblicato: 2020-02-10Sommario
Introduzione al FILATO Hadoop
YARN è il componente principale di Hadoop v2.0. YARN aiuta ad aprire Hadoop consentendo di elaborare ed eseguire dati per l'elaborazione batch, l'elaborazione di flussi, l'elaborazione interattiva e l'elaborazione di grafici che sono archiviati in HDFS. In questo modo, aiuta a eseguire diversi tipi di applicazioni distribuite diverse da MapReduce.
Nell'architettura YARN, il livello di elaborazione è separato dal livello di gestione delle risorse. Creare una divisione tra il gestore dell'applicazione e il gestore delle risorse era responsabilità del Job tracker nella versione di Hadoop 1.0. YARN consente ai dati archiviati in HDFS (Hadoop Distributed File System) di essere elaborati ed eseguiti da vari motori di elaborazione dati come elaborazione batch, elaborazione flusso, elaborazione interattiva, elaborazione grafica e molti altri. Così l'efficienza del sistema è aumentata con l'uso di YARN. L'elaborazione della domanda è pianificata in YARN attraverso le sue diverse componenti. Molti diversi tipi di risorse vengono inoltre allocati progressivamente per un utilizzo ottimale. YARN aiuta molto nel corretto utilizzo delle risorse disponibili, che è molto necessario per l'elaborazione di un elevato volume di dati.
Perché FILATO?
MapReduce esegue funzioni di gestione ed elaborazione delle risorse. Hadoop v1.0 è anche noto come MapReduce versione 1 (MRV1). C'era un solo master per Job Tracker.
Non crederai a come questo programma abbia cambiato la carriera degli studentiNella versione precedente di Hadoop, ovvero Hadoop versione 1.0, nota anche come MapReduce versione 1 (MRV1), viene utilizzata per eseguire autonomamente sia l'attività di gestione dei processi che delle risorse. Ha un modulo job tracker che è responsabile di tutto. Quindi è il singolo master che alloca le risorse per le applicazioni, esegue la pianificazione per la domanda e monitora anche i lavori di elaborazione nel sistema. Hadoop versione 1.0 riduce le attività e assegna mappe su diversi sottoprocessi, chiamati Task Tracker. Task Tracker segnala anche l'andamento dei processi in modo periodico. Ma il problema principale non è quello, il problema è questa progettazione di un unico master per tutti, con conseguente problema di collo di bottiglia. Inoltre, l'utilizzo delle risorse computazionali era inefficiente. Quindi la scalabilità è diventata un problema con questa versione di Hadoop. Ma il lato positivo è che questo problema è stato risolto da YARN, un componente fondamentale nel suo successore Hadoop versione 2.0, introdotto nell'anno 2012 da Yahoo e Hortonworks. L'idea di base alla base di questo sollievo è separare MapReduce dalla gestione delle risorse e dalla pianificazione dei lavori anziché da un unico master. Pertanto, YARN è ora responsabile della pianificazione del lavoro e della gestione delle risorse.
In Hadoop 2.0, il concetto di Application Master e Resource Manager è stato introdotto da YARN. In tutto il cluster di Hadoop, l'utilizzo delle risorse è monitorato dal Resource Manager.
Ci sono alcune caratteristiche di YARN per cui è diventato molto famoso, che sono:

- Multi-tenancy: YARN ha consentito l'accesso a più motori di elaborazione dati come motore di elaborazione batch, motore di elaborazione flusso, motore di elaborazione interattivo, motore di elaborazione grafica e molto altro. Ciò ha conferito all'azienda il vantaggio della multi-tenancy.
- Utilizzo dei cluster: i cluster vengono utilizzati in modo ottimizzato perché i cluster vengono utilizzati dinamicamente in Hadoop con l'aiuto di YARN.
- Compatibilità : YARN è compatibile anche con la prima versione di Hadoop, ovvero Hadoop 1.0, perché utilizza le app esistenti per la riduzione della mappa. Quindi YARN può essere utilizzato anche con Hadoop 1.0.
- Scalabilità : lo scheduler in Resource Manager di YARN consente a migliaia di cluster e nodi di essere gestiti ed estesi da Hadoop.
Componenti di FILATO
- Contenitore:
Nel contenitore si possono trovare risorse fisiche come un disco su un singolo nodo, core della CPU, RAM. Container Launch Context (CLC) viene utilizzato per richiamare i container. Dati sulle dipendenze, i token di sicurezza, le variabili di ambiente che vengono mantenute come un record noto come Container Launch Context (CLC).
- Su un host specifico, un'applicazione può utilizzare solo la memoria specificata dalla CPU e dalla memoria. Questa quantità di memoria specificata può essere utilizzata solo dopo che l'autorizzazione è stata concessa dal contenitore.
- Il contesto di avvio del contenitore viene utilizzato per gestire i contenitori YARN. Si chiama anche Container LifeCycle (CLC). In questo record sono memorizzati i comandi necessari per la creazione del processo. Salva anche il carico utile per i servizi Node Manager, i token di sicurezza, le dipendenze, la mappa delle variabili di ambiente.
- Maestro dell'applicazione:
In un framework, quando viene presentato un singolo lavoro, viene chiamato domanda. Il monitoraggio dello stato di avanzamento dell'applicazione, il monitoraggio dello stato dell'applicazione, la negoziazione delle risorse con il gestore delle risorse è responsabilità del gestore dell'applicazione. Tutti i requisiti per l'esecuzione di un'applicazione vengono eseguiti inviando il Container Launch Context (CLC). Il master dell'applicazione invia il container Launch Context (CLC) richiedendo il container al gestore del nodo. Di tanto in tanto, il gestore delle risorse riceve un rapporto sull'integrità dopo l'avvio dell'applicazione.

- Gestore del nodo:
Il gestore dei nodi si occupa dei singoli nodi nel cluster Hadoop e gestisce anche i contenitori relativi a ciascun nodo specifico. Viene registrato con Resource Manager e invia lo stato di integrità di ciascun nodo al Resource Manager, indicando se il processo del nodo ha terminato di lavorare con la risorsa. Poiché il suo obiettivo principale è gestire ogni contenitore di nodi specifico assegnato dal gestore delle risorse. Il gestore del nodo crea anche un processo contenitore quando richiesto dal master dell'applicazione. Quando il master dell'applicazione invia e chiede il Container allegato al gestore del nodo tramite un CLC (Container Launch Context) che include tutto ciò di cui un'applicazione ha bisogno per essere eseguita. Quindi il gestore del nodo crea il contenitore del processo richiesto e lo esegue. Il gestore del nodo è anche responsabile del monitoraggio dell'utilizzo delle risorse da parte del singolo container e della segnalazione al gestore delle risorse. Pertanto, il gestore del nodo e il gestore delle risorse collaborano per comunicare tra i nodi e gestire l'utilizzo delle risorse da parte di ciascun nodo nel cluster. Può anche uccidere i contenitori se indicato dal responsabile delle risorse. Infine, i gestori dei nodi registrano tutto dal sistema di gestione dei registri al suo interno.
Un particolare nodo è curato dal Node Manager. Il Node Manager gestisce il flusso di lavoro e l'applicazione del nodo. Viene eseguita la gestione dei registri e Node Manager monitora l'utilizzo delle risorse. Il gestore delle risorse fornisce le indicazioni per uccidere un container al Gestore dei nodi. Il master dell'applicazione richiede al gestore del nodo di avviare il processo del contenitore. La creazione di un processo container è responsabilità del Node Manager.
- Responsabile delle risorse:
La gestione delle risorse e l'assegnazione di tutte le app è responsabilità di Resource Manager ed è il demone principale di YARN. Le richieste ricevute dal gestore delle risorse vengono inoltrate al gestore del nodo corrispondente. In base all'applicazione, le risorse vengono allocate dal gestore risorse per il completamento.
- L'utilizzo del Cluster è ottimizzato, come mantenere attivo l'utilizzo di tutte le risorse a fronte di diversi tipi di limitazioni come SLA, equità e garanzie di capacità.
- Il Resource Manager fa l'allocazione delle risorse disponibili.
- Il Resource Manager arbitra le risorse del cluster.
- L'elaborazione vera e propria delle richieste avviene nei nodi e i gestori dei nodi la gestiscono. Ogni volta che viene ricevuta una richiesta di elaborazione, trasferisce le richieste in parti ai relativi gestori di nodi.
- Resource Manager è la massima autorità per l'allocazione delle risorse.
Esistono due componenti principali di Resource Manager, che sono: –

- Gestore dell'applicazione -
Il gestore dell'applicazione è responsabile della gestione di una serie di attività o domande inviate. In primo luogo verifica e convalida le specifiche della domanda presentata e può rifiutare le domande se non ci sono risorse disponibili sufficienti. Garantisce inoltre che non esistano altre applicazioni con lo stesso ID già inviato che possono essere causate da un client errato o dannoso. Quindi inoltra la domanda presentata dopo la convalida allo scheduler. Infine, osserva anche gli stati delle applicazioni e gestisce le applicazioni finite per risparmiare memoria di Resource Manager. Il gestore dell'applicazione conserva una cache delle applicazioni completate e sposta le applicazioni vecchie e finite per fare spazio alle domande appena inviate.
- Agenda –
In base alla disponibilità delle risorse e all'allocazione delle applicazioni, lo Scheduler pianifica le attività. Non ci sono altre attività eseguite dallo scheduler come nessun riavvio del lavoro dopo un errore, monitoraggio o monitoraggio delle attività. I diversi tipi di plug-in per lo scheduler sono Fair Scheduler e Capacity Scheduler, che sono supportati dallo scheduler YARN per la partizione delle risorse del cluster.
Fasi del flusso di lavoro dell'applicazione in Hadoop YARN
Una domanda è presentata dal cliente.
- Application Manager viene avviato dall'allocazione del Container da parte del Resource Manager.
- Resource Manager e Application Manager si registrano tra loro.
- L'Application Manager esegue la negoziazione del Container con il Resource Manager.
- Il Node Manager avvia il Container dopo essere stato avvisato dall'Application Manager.
- L'esecuzione del codice dell'applicazione viene eseguita nel contenitore.
- L'Application Manager o Resource Manager monitora lo stato dell'applicazione dopo essere stato contattato dal cliente.
- L'annullamento della registrazione di Application Manager viene eseguito con Resource Manager al termine del processo.
Avvolgendo
Se sei interessato a saperne di più sui Big Data, dai un'occhiata al nostro PG Diploma in Software Development Specialization nel programma Big Data, progettato per professionisti che lavorano e fornisce oltre 7 casi di studio e progetti, copre 14 linguaggi e strumenti di programmazione, pratiche pratiche workshop, oltre 400 ore di apprendimento rigoroso e assistenza all'inserimento lavorativo con le migliori aziende.
Impara i corsi di sviluppo software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.