what is hadoop apache hadoop tutorial
Questo tutorial di Apache Hadoop per principianti spiega in dettaglio tutto su Big Data Hadoop, le sue caratteristiche, il framework e l'architettura:
dichiarare variabili statiche in c ++
Nel tutorial precedente, abbiamo discusso in dettaglio i Big Data. Ora la domanda è come possiamo gestire ed elaborare un volume così grande di dati con risultati affidabili e accurati.
C'è davvero un'ottima soluzione fornita da Apache e alimentata da Java, ad es. Hadoop Framework .
=> Leggere tutta la serie di formazione Easy BigData.
Cosa imparerai:
Cos'è Hadoop?
Apache Hadoop è un framework open source per gestire tutti i tipi di dati (strutturati, non strutturati e semi-strutturati).
Come tutti sappiamo, se vogliamo elaborare, archiviare e gestire i nostri dati, RDBMS è la soluzione migliore. Tuttavia, i dati dovrebbero essere in un formato strutturato per gestirli con RDBMS. Inoltre, se la dimensione dei dati aumenta, RDBMS non è in grado di gestirli e dobbiamo eseguire regolarmente la pulizia del database.
Ciò può causare la perdita di dati storici e non può generare risultati accurati e affidabili in alcuni settori come previsioni del tempo, banche, assicurazioni, vendite, ecc. Un altro problema con RDBMS è che se il server principale si blocca, potremmo perdere il nostro importante dati e soffrono molto.
In questo tutorial vedremo come possiamo superare questi problemi con Apache Hadoop.
Hadoop è un file system distribuito e può archiviare grandi volumi di dati (dati in petabyte e terabyte). Anche la velocità di elaborazione dei dati è molto elevata e fornisce risultati affidabili poiché dispone di un sistema di tolleranza ai guasti molto elevato.
Hadoop è un framework di programmazione open source basato su Java che supporta l'archiviazione e l'elaborazione di set di dati di grandi dimensioni in un ambiente di elaborazione distribuito.
Hadoop si basa su un concetto di cluster che utilizza hardware di base. Non richiede alcuna configurazione complessa e possiamo creare l'ambiente Hadoop con un hardware di configurazione più economico, semplice e leggero.
Il concetto di cluster in parole semplici è i dati archiviati in formato di replica su più macchine in modo che quando si verifica un problema o un disastro in una delle posizioni in cui risiedono i dati, deve esserci una copia duplicata di quei dati disponibile in modo sicuro in un'altra posizione .
Hadoop Vs RDMBS
Di seguito sono elencati alcuni punti che descrivono i vantaggi di Hadoop rispetto a RDBMS.
Caratteristiche | Hadoop | RDBMS |
---|---|---|
Conservazione | Capacità di stoccaggio molto elevata. | Impossibile memorizzare Bigdata. |
Architettura | Hadoop è basato su HDFS, MapReduce e YARN. | RDBMS si basa sulle proprietà ACID. |
Volume | Può gestire grandi volumi di dati. | RDBMS non può gestire grandi volumi di dati. |
Varietà / tipi di dati | Può gestire dati strutturati, semi strutturati e non strutturati come video, immagini, file CSV, xml ecc. | Gestisci solo dati strutturati. |
Velocità | Elaborazione rapida di grandi quantità di dati. | Molto lento durante l'elaborazione di grandi quantità di dati. |
Portata | Elevata produttività. | Basso rendimento. |
Tolleranza ai guasti | Molto bene | Non è in grado di recuperare i dati persi se il server principale non funziona. |
Affidabile | Molto affidabile e genera rapporti storici e attuali accurati. | Non affidabile in termini di Bigdata. |
Caratteristiche di Hadoop
Ora conosciamo l'esatta definizione di Hadoop. Facciamo un passo avanti e familiarizziamo con la terminologia che utilizziamo in Hadoop, impariamo la sua architettura e vediamo come funziona esattamente su Bigdata.
Il framework Hadoop si basa sui seguenti concetti o moduli:
- Hadoop YARN
- Hadoop Common
- Hadoop HDFS ( H adoop D distribuito F con S ystem)
- Hadoop MapReduce
# 1) Hadoop YARN: YARN sta per ' Y e PER altro R risorsa N egotiator 'che viene utilizzato per gestire la tecnologia cluster del cloud. Viene utilizzato per la pianificazione del lavoro.
# 2) Hadoop Common: Queste sono le librerie dettagliate o le utilità utilizzate per comunicare con le altre funzionalità di Hadoop come YARN, MapReduce e HDFS.
# 3) Hadoop HDFS: Il file system distribuito viene utilizzato in Hadoop per archiviare ed elaborare un volume elevato di dati. Inoltre, viene utilizzato per accedere ai dati dal cluster.
# 4) Hadoop MapReduce: MapReduce è la caratteristica principale di Hadoop che è responsabile dell'elaborazione dei dati nel cluster. Viene utilizzato per la pianificazione dei lavori e il monitoraggio dell'elaborazione dei dati.
Qui abbiamo appena incluso la definizione di queste funzionalità, ma vedremo una descrizione dettagliata di tutte queste funzionalità nei nostri prossimi tutorial.
Architettura Hadoop
Impariamo l'architettura del framework e vediamo quali componenti vengono utilizzati al suo interno. Questo framework segue un'architettura master-slave nel cluster.
Di seguito sono riportati i componenti Hadoop:
- HDFS
- Riduci mappa
- FILATO
Questi sono i tre componenti importanti dell'architettura Hadoop. Dovremmo anche capire alcune delle terminologie o dei concetti dell'Architettura e vedere come funzionano.
- Nome nodo
- Nodo dati
- Nodo nome secondario
- Blocchi
# 1) Nome nodo
Name Node è il nodo master in HDFS. Contiene i metadati di HDFS come le informazioni sui file, la struttura delle directory, le informazioni sui blocchi e tutte le informazioni di Data Node, ecc. Name Node è responsabile solo dell'accesso ai dati o ai file dal client. Tiene traccia di tutte le transazioni o le modifiche apportate ai file.
Funziona principalmente su due file, ad es. FsImage e EditLogs . Name Node ha un JobTracker che contiene tutti i dettagli del Data Node come quale Data Node ha quale attività, quanti blocchi ci sono con ogni Data Node, il battito cardiaco di ogni Data Node, i dettagli della pianificazione del lavoro nel cluster, ecc.
In breve, possiamo dire che un JobTracker contiene TaskTracker di ogni Data Node.
# 2) Nodo dati
Il nodo dati è il nodo slave in HDFS. Data Node è responsabile dell'archiviazione e dell'elaborazione effettive dei dati. Il suo compito principale è dividere il lavoro in tre blocchi e archiviarlo in diversi nodi di dati. Dopodiché inizia l'elaborazione dei dati.
Inoltre, ha TaskTracker che ha le informazioni complete di ogni blocco e quale blocco è responsabile di quale attività, quale blocco ha completato l'attività, ecc. E dopo aver elaborato i dati invia le informazioni a Name Node. Ogni volta che il Data Node si avvia, invia nuovamente tutte le informazioni al Name Node.
# 3) Nodo nome secondario
Il nodo nome secondario viene utilizzato in caso di tolleranza ai guasti. Esistono due scenari in cui il nodo del nome è inattivo e la struttura completa di Hadoop avrà esito negativo perché il nodo del nome è l'unico punto di errore.
(i) Se Name Node si riavvia a causa di un problema di quanto ci sia voluto per riapparire poiché ha un'enorme quantità di dati, per ripristinarlo ci vuole tempo.
(ii) In caso di arresto anomalo di Name Node, tutti i dati HDFS andranno persi e non potranno ripristinarli di nuovo poiché Name Node è l'unico punto di errore. Quindi, per superare questi problemi, c'è il nodo del nome secondario. Contiene anche un'immagine dello spazio dei nomi e registri di modifica uguali al nodo del nome.
Dopo un certo periodo, copierà l'immagine dello spazio dei nomi e aggiornerà i registri di modifica dal nodo del nome. Pertanto, in caso di errore di un nodo del nome, il nodo del nome secondario entra in scena e si comporta come il nodo del nome principale. A causa di questo processo, impedisce il fallimento totale.
# 4) Blocchi
I blocchi sono l'unità più piccola nell'HDFS. Hadoop può elaborare un'enorme quantità di file in quanto lo divide in piccoli blocchi. Possiamo dire che i blocchi non sono altro che i dati di un file enorme. La dimensione di ogni blocco è di 128 MB. Questi blocchi vengono salvati nei nodi di dati ed elaborano i dati.
Ora, impariamo l'architettura di Hadoop per comprenderne il funzionamento.
Il file system distribuito Hadoop (HDFS) è il file system utilizzato nel cluster Hadoop. Principalmente HDFS viene utilizzato per archiviare i dati Hadoop nel cluster. HDFS sta generalmente lavorando sull'elaborazione sequenziale dei dati. Come già sappiamo, si basa sull'architettura Master-Slave.
Tutti i metadati del cluster vengono salvati nel Name Node in JobTracker e i dati effettivi vengono memorizzati nel Data Node dell'HDFS nel TaskTracker.
MapReduce è responsabile del trattamento dei dati. Ogni volta che un file entra nel cluster per l'elaborazione, il primo nodo dati lo divide in blocchi e ogni blocco contiene 64 MB di dati e può memorizzare 128 MB. Quindi ogni blocco verrà replicato due volte e archiviato in diversi nodi di dati ovunque nel cluster.
Tutte queste informazioni verranno inviate al Nodo Nome e il Nodo Nome memorizzerà queste informazioni sotto forma di metadati. Quindi l'effettiva elaborazione dei dati avvierà il Data Node e invierà un heartbeat al Name Node ogni tre secondi in modo che il Name Node abbia le informazioni su cui sta lavorando questo Data Node.
Se qualcuno dei Data Node non riesce a inviare heartbeat, il Name Node crea nuovamente la replica di quel blocco su un altro Data Node e avvia l'elaborazione.
Tutte queste informazioni o istantanee verranno archiviate in FsImage e, se viene eseguita una transazione, il registro di modifica unisce le nuove informazioni e mantiene sempre una nuova copia dei registri.
Il blocco che termina per primo l'attività verrà preso e il Data Node invia le informazioni al Name Node e il Name Node intraprenderà l'azione di conseguenza.
In questo intero processo, YARN supporterà e fornirà le risorse necessarie al sistema, in modo che non influisca sull'elaborazione dei dati e sulla velocità. Dopo l'elaborazione dei dati, i risultati verranno salvati in HDFS per ulteriori analisi.
Conclusione
In questo tutorial, abbiamo imparato cos'è Hadoop, differenze tra RDBMS e Hadoop, vantaggi, componenti e architettura di Hadoop.
Questo framework è responsabile dell'elaborazione dei big data e dell'analisi. Abbiamo visto MapReduce, YARN e HDFS funzionano nel cluster.
Nota: Di seguito sono riportati i dettagli di configurazione di Name Node e Data Node. Secondary Name Node avrà la stessa configurazione del Name Node.
Configurazione del nodo nome:
Processori: 2 CPU Quad Core in esecuzione a 2 GHz
RAM: 128 GB
Disco: 6 x 1 TB SATA
Rete: 10 Gigabit Ethernet
Configurazione del nodo dati:
Processori: 2 CPU Quad Core in esecuzione a 2 GHz
RAM: 64 GB
Disco: 12-24 x 1 TB SATA
Rete: 10 Gigabit Ethernet
=> Dai un'occhiata alla guida per principianti sui Big Data qui.
Lettura consigliata
- Tutorial sui Big Data per principianti | Cosa sono i big data?
- 20+ Tutorial MongoDB per principianti: corso MongoDB gratuito
- Come configurare Node.js Testing Framework: Node.js Tutorial
- Esercitazione sul data mart - Tipi, esempi e implementazione del data mart
- Tutorial approfonditi su Eclipse per principianti
- Tutorial Python per principianti (formazione pratica GRATUITA su Python)
- Data Driven Framework in Selenium WebDriver utilizzando Apache POI
- Tutorial LoadRunner per principianti (corso di approfondimento gratuito di 8 giorni)