Database
 sql >> Database >  >> RDS >> Database

Un'introduzione a Hadoop e Big Data

Gestire tonnellate di dati richiede un accordo speciale. Le tecniche computazionali comuni non sono sufficienti per gestire un flusso di dati, soprattutto quando provengono da più fonti. Nei Big Data, la grandezza di cui stiamo parlando è enorme, misurata in zettabyte, exabyte o milioni di petabyte o miliardi di terabyte. Il framework chiamato Hadoop è comunemente usato per gestire alcuni dei problemi con la gestione dei Big Data. Questo articolo tenta di dare un'idea introduttiva di Hadoop alla luce dei Big Data.

Evoluzione

Non succede niente con un big bang. L'origine e l'evoluzione di Hadoop è graduale e secondo le esigenze del momento nel trattare con i Big Data. Per affermare brevemente, deve la sua origine al progetto Apache Nutch di Doug Cutting nell'anno 2003, specialmente all'inizio la parte di codice di esso. La genesi è stata sviluppata da Google File System (GFS), un documento pubblicato nell'ottobre 2003, che ha influenzato un altro documento chiamato MapReduce:Simplified Data Processing on Large Clusters. Il codice per HDFS in Hadoop è stato estratto dal progetto Apache Nutch nel 2006 ed è fortemente influenzato dagli algoritmi GFS e MapReduce. E il fatto che il nome "Hadoop" derivi dall'elefante di peluche del figlio di Cutting risuona chiaramente l'idea che ci sia un elefante nella stanza che Hadoop vuole chiaramente affrontare o affrontare.

In poche parole

Oggi, Hadoop è cresciuto dal suo inizio monolitico per essere una libreria software, un framework per sviluppare applicazioni che richiedono l'elaborazione distribuita di enormi quantità di dati che giacciono su cluster di computer utilizzando semplici modelli di programmazione. Può scalare da un singolo server a migliaia di macchine. L'idea è di distribuire il calcolo e l'archiviazione su più computer per sfruttare l'elaborazione di grandi insiemi di dati. La libreria ha la capacità di rilevare gli errori a livello del livello dell'applicazione in modo che il programmatore possa gestirli e fornire il servizio su un cluster di computer piuttosto che permeare l'errore a uno o più livelli inferiori dove diventa più difficile gestire o superare.

Hadoop, quindi, è una combinazione di strumenti e librerie open source supportate da Apache per la creazione di applicazioni per il calcolo distribuito altamente affidabili e scalabili.

Come funziona

Esistono tre modi in cui Hadoop gestisce sostanzialmente i Big Data:

  • Il primo problema è l'archiviazione. I dati vengono archiviati in più macchine informatiche in un ambiente distribuito dove possono essere elaborati in parallelo per ridurre tempo e risorse. I dati vengono mantenuti in un ambiente chiamato Hadoop Distributed File System (HDFS) , che viene utilizzato per archiviare i dati in più formati su cluster di macchine. A tale scopo, divide i dati in blocchi e li archivia su diversi nodi di dati. Utilizza una tecnica chiamata ridimensionamento orizzontale per aggiungere ulteriori nodi di dati ai cluster HDFS esistenti in base ai requisiti. Ciò massimizza l'utilizzo della risorsa esistente invece di aggiungerne una ogni volta che si presenta la necessità di aumentare la scalabilità.
  • Il secondo problema è accogliere la varietà di dati. HDFS è attrezzato per archiviare tutti i tipi di dati, siano essi strutturati, semi-strutturati o non strutturati. Non esiste una convalida dello schema di pre-dumping. I dati, una volta scritti, possono essere letti più volte senza alcun problema.
  • La terza questione riguarda l'elaborazione e le modalità di accesso ai dati archiviati. A questo proposito, l'algoritmo MapReduce viene in soccorso, in cui l'elaborazione viene distribuita tra i nodi slave per funzionare in parallelo e il risultato viene inviato al nodo master. Il nodo principale unisce i risultati prima di fornire il risultato finale. Questa parte è gestita da YARN, progettato per l'elaborazione parallela dei dati archiviati in HDFS.

Ci sono molte parti intricate, ma questo è ciò che Hadoop fa in poche parole. L'idea dei moduli darebbe ulteriori approfondimenti.

Moduli

Il progetto Apache Hadoop è composto da sei moduli. I primi quattro sono i seguenti:

  • Hadoop comune :è costituito da utilità comunemente utilizzate da Hadoop e supporta altri moduli Hadoop. È anche conosciuto come Hadoop Core ed è una parte essenziale dell'ecosistema, insieme a HDFS, YARN e MapReduce. È in questa parte che Hadoop presume che l'hardware sia soggetto a guasti e vengono forniti tutti i mezzi necessari affinché un programmatore gestisca automaticamente i guasti nel software.
  • File system distribuito Hadoop (HDFS) :un file system distribuito che può ospitare una varietà di file in un ambiente distribuito. Suddivide i file in blocchi e li archivia tra i nodi in un'architettura distribuita. Fornisce il ridimensionamento orizzontale invece del ridimensionamento verticale, per un ulteriore raggruppamento. È altamente tollerante ai guasti ea basso costo in termini di capacità di distribuzione dell'hardware.
  • FILATO Hadoop :Questa è la CPU del framework Hadoop. Con due componenti principali, chiamati NodeManager e ResourceManager , YARN esegue tutte le attività di elaborazione come l'allocazione delle risorse, la pianificazione delle attività e la gestione dei cluster.
  • Hadoop MapReduce :Questo è un framework per eseguire tutti i calcoli paralleli. MapReduce è un modello di programmazione parallela per elaborare i dati in un ambiente distribuito. È idealmente utilizzato per scrivere applicazioni distribuite in grado di elaborare in modo efficiente grandi quantità di dati su cluster di hardware di base. Segmenta il processo in due fasi, denominate Mappa e Riduci , dove il compito del Mapper classe è prendere l'input, tokenizzare, mappare e ordinarlo. L'output diventa quindi l'input per il Riduttore class, che ricerca le coppie corrispondenti e le riduce. Ci sono coppie chiave-valore per input e output in ogni fase e il tipo della coppia è determinato dal programmatore.

Di recente sono stati aggiunti due nuovi sottoprogetti:

  • Hadoop Ozono :è un archivio di oggetti scalabile, ridondante e distribuito per Hadoop. Oltre a scalare su miliardi di oggetti di varie dimensioni, Ozone può funzionare efficacemente in ambienti containerizzati come Kubernetes e YARN. È basato su un livello di archiviazione a blocchi replicato ad alta disponibilità chiamato Hadoop Distributed Data Store (HDDS) . [Un estratto. Clicca per saperne di più.]
  • Sottomarino Hadoop :un motore di apprendimento automatico per Hadoop. È un progetto che consente a un ingegnere informatico/scienziato dei dati di eseguire applicazioni di deep learning (Tensorflow, Pytorch e così via) su una piattaforma di gestione delle risorse (come YARN). [Un estratto. Clicca per saperne di più.]

Conclusione

Hadoop ha avuto un impatto significativo sulle ricerche, nel processo di registrazione, nel data warehousing e nell'analisi dei Big Data di molte grandi organizzazioni, come Amazon, Facebook, Yahoo e così via. È una soluzione completa per l'archiviazione di un'enorme quantità di dati di qualsiasi tipo, accompagnata da una potenza di elaborazione scalabile per sfruttare lavori simultanei praticamente illimitati. In poche parole, la popolarità di Hadoop deve molto alla sua capacità di tolleranza ai guasti, scalabile, conveniente e veloce.