Hadoop

Che cos'è e perché è importante?

Hadoop è un software open-source per l'archiviazione di dati su cluster di commodity hardware. Mette a disposizione la propria memoria virtuale per un enorme volume di dati di qualsiasi tipo, un potente processore e la capacità di gestire virtualmente una quantità illimitata di compiti e lavori simultanei.

Storia di Hadoop

In contemporanea alla crescita del World Wide Web tra la fine degli anni '90 e i primi anni 2000, vennero creati motori di ricerca e index per localizzare informazioni rilevanti all'interno dei contenuti a base testuale. Inizialmente, i risultati delle ricerche venivano forniti da operatori umani. Ma l'automazione divenne necessaria in seguito all'espansione del web da dozzine di pagine a milioni. Divenne necessaria la creazione dei web crawler, la maggior parte dei quali si trattava di progetti di ricerca guidati dalle università, e presero il via le start-up dei principali motori di ricerca attualmente in uso (Yahoo, AltaVista, ecc.).

hadoop-timeline-infographic

 

Tra questi progetti si trovava il motore di ricerca open-source che prese il nome di Nutch - frutto dell'ingegno di Doug Cutting e Mike Cafarella. Il suo scopo era fornire i risultati delle ricerche più velocemente, distribuendo dati e calcoli a diversi computer, in modo da riuscire a compiere in contemporanea azioni differenti. Nello stesso periodo prendeva vita un altro progetto, per un motore di ricerca che si sarebbe in seguito chiamato Google. Quest'ultimo era basato sullo stesso concetto: immagazzinare e processare i dati in modo automatico e distribuito, per fornire velocemente i risultati rilevanti delle ricerche web.

Nel 2006, Cutting si unì al team di Yahoo e portò con se il progetto Nutch e le idee che prendevano spunto dai primi risultati di Google, in termini di distribuzione ed elaborazione dei dati. Il progetto Nutch fu diviso - la parte riguardante i web crawler rimase Nutch, mentre tutto ciò che riguardava il distributed computing e l'elabrazione divenne Hadoop (il nome deriva dall'elefante di peluche del figlio di Cutting). Nel 2008, Yahoo rilasciò Hadoop come progtto open-source. Oggi, la struttura e l'ecosistema di tecnologie Hadoop vengono gestiti e mantenuti dalla Apache Software Foundation (ASF), una comunità globale non-profit di sviluppatori di software e collaboratori.

 

 


Perchè Hadoop è importante?

  • Capacità di archiviare e processare un enorme volume di dati di qualsiasi tipo, velocemente. Caratteristica fondamentale per gestire il costante aumento dei volumi e la varietà dei dati, in particolare dei social media e dell'internet delle cose (IoT).
  • Computazione potente. I modelli computazionali distribuiti di Hadoopo processano i big data velocemente. Maggiori sono i computing nodes che utilizzi e maggiore sarà la potenza del processore.
  • Tolleranza ai guasti. I dati e i processori sono protetti dai guasti hardware. Se un nodo si guasta, le attività vengono automaticamente indirizzate ad altri nodi per assicurare che il distributed computing funzioni. Ogni dato viene automaticamente salvato in più copie.
  • Flessibilità. A differenza dei database tradizionali, non c'è bisogno di elaborare i dati prima di memorizzarli. Puoi memorizzare tutti i dati che vuoi e decidere in seguito come utilizzarli. Inclusi i dati non strutturati, come testi, immagini e video.
  • Low cost. Il framefork open-source è gratuito e utilizza commodity hardware per archiviare un grande volume di dati.
  • Scalabilità. Puoi facilmente aumentare i dati gestiti dal tuo sistema solo aggiungendo delle note. L'amministrazione richiesta è davvero minima.

 

Quali sfide comporta l'utilizzo di Hadoop?

MapReduce non risolve tutti i problemi. Funziona in caso di richiesta di informazioni semplici e problemi che possono essere divisi in unità indipendenti, ma non è efficace per compiti analitici iterativi e interattivi. MapReduce è definito file-intensive, perchè i nodi non comunicano se non attraverso le fasi sort e shuffle. Gli algoritmi iterativi per funzionare richiedono fasi multiple di map-shuffle/sort-reduce. Questo crea file multipli tra le varie fasi del MapReduce e risulta inefficente per l'advanced analytic computing.

C'è un'ampiamente riconosciuta carenza di talenti. Trovare giovani programmatori con la dimestichezza in Java necessaria per uilizzare MapReduce può risultare difficile. Questa è una delle ragioni per le quali i fornitori si stanno sforzando di applicare ad Hadoop la tecnologia relazionale SQL. Infatti è molto più facile trovare programmatori abili in SQL piuttosto che in MapReduce. In realtà l'utilizzo di Hadoop non richiede livelli alti di conoscenza dei sistemi operativi, degli hardware e dei kernel settings Hadoop, perchè a quanto pare è costituito in parte dalla scienza e in parte dall'arte.

Data security. Un'altra sfida ha come fulcro il problema della sicurezza dei dati frammentati, sempre attuale sebbene continuino ad affiorare nuovi strumenti e tecnologie volti alla sicurezza e alla privacy. Il protocollo di autenticazione Kerberos è un primo grande passo per rendere sicuro l'ambiente Hadoop.

Gestione e amministrazione full-fledged dei dati. Hadoop non ha strumenti di data management, data cleansing, amministrazione e metadata facili da usare e con funzioni complete. Gli strumenti per la qualità e la standardizzazione dei dati sono particolarmente carenti.

 



Fun Fact: "Hadoop” era il nome dell'elefante giallo di peluche del figlio di uno dei suoi inventori.

Hadoop al giorno d'oggi

Molte organizzazioni si sono rivole ad Hadoop per il suo potente processore e per lo spazio di memoria low-cost e altamente disponibile. Tuttavia, a molte di queste rimane una domanda fondamentale: Come può aiutarci Hadoop con big data e analytics? Scopri di più qui!

 
tdwi logo - Advancing all things data


Lettura di spessore: Hadoop per le imprese

Questo report TDWI di 40 pagine spiega come Hadoop e le sue attualizzazioni si stiano evolvendo per permettere alle imprese utilizzi che vanno oltre le applicazini di nicchia.

Scopri di più

Report icon


Il brutto anatroccolo che diventò un cigno

Così il Bloor Group presenta l'ecosistema Hadoop nel suo report che esplora l'evoluzione di Hadoop e le sue possibilità di utilizzo. Include anche una storia dettagliata e dei consigli su come scegliere il tipo di distribuzione adatta ai tuoi bisogni.

Scarica il report

Webcast


Lo stato di utilizzo di Hadoop

Chi trae benefici da Hadoop? Che cosa offre? Sponsorizzato dall'International Institute for Analytics (IIA) e SAS, questo webinar mostra come l'integrazione, la scoperta e l'analisi dei dati possono aumentare il valore di questo ecosistema.

Guarda ora

E-book icon


Panoramica di SAS e Hadoop

Fai la conoscenza dei concetti Hadoop e SAS in modo da poter capire ed utilizzare la tecnologia che più si adatta ai tuoi bisogni. Scarica gratuitamente questo libro per imparare come la tecnologia SAS interagisce con Hadoop.

Maggiori dettagli

Come viene utilizzato Hadoop?

Oltre al suo scopo originale di fornire risultati rilevanti dalla ricerca tra milioni (o miliardi) di pagine, molte organizzaioni stanno sfruttando Hadoop come la loro prossima piattaforma di big data. Gli usi più popolari al giorno d'oggi includono:

 

Memoria e archivio di dati low-cost

Il costo modesto dei commodity hardware rende Hadoop utile all'archiviazione e combinazione di dati provenienti da transazoni, social media, sensori, macchinari, scienza, click streams, ecc. Lo spazio di archiviazione low-cost ti permette di tenere informazioni che al momento non si considerano fondamentali, ma che potresti voler analizzare più avanti.

Approccio sandbox, scoperta e analisi

Dato che Hadoop è stato progettato per avere a che fare con volumi di dati di diversa natura e forma, esegue gli algoritmi analitici. Gli analytics di Hadoop per i big data possono aiutare la tua organizzazione ad operare in modo più efficace, svelare nuove opportunità e ottenere vantaggio competitivo. L'approccio sandbox fornisce opportunità d'innovazione richiedendo investimenti minimi.

Data lake

I data lake mantengono nel loro format originale i dati archiviati. L'obiettivo è offrire ai data scientists e agli analisti righe di dati non raffinati da scoprire e analizzare. Questo li aiuta a porsi domande nuove o difficili senza alcun vincolo. I data lake non sono un rimpiazzo dei data warehouse. Infatti, il tema della sicurezza e dell'amministrazione dei data lake è molto importante per gli IT. Per creare strutture di dati logiche, essi fanno affidamento sulle tecniche di data federation.

Completa i tuoi data warehouse

Si può notare come Hadoop stia incominciando ad affiancare gli ambienti di data warehouse, e come alcune serie di dati si stiano riversando dai data warehous ad Hadoop o ancora, come i nuovi tipi di dati stiano andando direttamente ad Hadoop. L'obiettivo finale di ogni organizzazione è avere la giusta piattaforma per immagazzinare e processare i dati di diversi tipi, in modo tale da essere di supporto a diversi casi di utilizzo applicabili su vari livelli.

IoT e Hadoop

Gli elementi che costituiscono l'IoT devono sapere cosa comunicare e quando agire. Il fulcro dell'IoT è un flusso costante di dati. Hadoop vene spesso usato come magazzino dati di milioni o miliardi di transazioni. Inoltre, le potenti capacità di elaborazione e l'enorme memoria ti permettonno di utilizzare Hadoop come un sandbox per la scoperta e la definizione di schemi da monitorare per istruzioni pescrittive. In seguito potrai migliorare continuamente queste istruzioni, proprio perchè Hadoop viene costantemente aggiornato con nuovi dati che non corrispondono a schemi predefiniti.

 

 

Costruire un recommendation su Hadoop

Uno degli usi analitici più popolari per alcuni dei maggiori fruitori di Hadoop riguarda il recommendation systems basato sul web. Facebook - persone che potresti conoscere. LinkedIn - lavori che potrebbero interessarti. Netflix, eBay, Hulu - prodotti che potresti desiderare. Questi sistemi analizzano enormi volumi di dati in tempo reale per prevedere velocemente le preferenze dei clienti, prima che questi lascino la pagina.

Come: Un recommender system può generare il profilo di un utente in modo esplicito (interrogando l'utente) o in modo implicito (osservando il comportamento dell'utente) - per poi comparare i profili e le loro caratteristiche (osservate e dedotte da un'intera comunità di utenti) per rispondere alle preferenze di ognuno. SAS fornisce svariate tecniche e algoritmi per creare un recommendation system, partendo da misurazioni base a distanza fino alla fattorializzazione della matrice e ai filtri collaborativi - tutto questo può essere eseguito con Hadoop.

Leggi come creare un recommendation systems su Hadoop e molto altro

Credo che Hadoop sia maturato fino al punto in cui le persone possono costruire con successo applicazioni grandi e complesse a partire dalla piattaforma. Hadoop ha soddisfatto la nostra condizione di scalarità in modo da permetterci di maneggiare una grande varietà di tipi di dati.
Bob Zurek, Senior Vice President of Products at Epsilon in Hadoop for the Enterprise, a TDWI Best Practices Report

Utilizzo e Glossario di Hadoop

Attualmente, nel framework dell'Apache Foundationfour sono inclusi quattro moduli fondamentali:

 

Hadoop Common – le librerie e i servizi utilizzati dagli altri moduli di Hadoop.

Hadoop Distributed File System (HDFS) – il sistema scalare basato su Java che archivia dati attraverso più macchinari senza una precedente organizzazione.

YARN – (Yet Another Resource Negotiator) aiuta la gestione delle risorse dei processi in esecuzione su Hadoop.

MapReduce – un software framework di calcolo parallelo. È costituito da due fasi. La fase map è il nodo principale o master node in cui gli input vengono presi e ripartiti in sotto-problemi più piccoli e poi distribuiti ai nodi di elaborazione. Successivamente, il master node trasporta le risposte a tutti i sotto-problemi e le abbina tra loro per produrre degli output.

Alti elementi software che vengono eseguiti con (o affiancano) Hadoop, che hanno raggiunto lo status di progetto Apache di livello superiore, includono:

AmbariUn'interfaccia web per gestire, configuare e testare i servizi e gli elementi di Hadoop.
CassandraUn sistema di database distribuiti.
FlumeSoftware che collezionano, aggregano e muovono grandi volumi di dati streaming in HDFS.
HBaseUn database non relazionale distribuito che viene lanciato con Hadoop. Le tavole HBase possono servire da input e output per lavori di MapReduce.
HCatalogUno strumento di gestione del tavolo storage che aiuta gli utenti a condividere e accedere ai dati.
HiveUn linguaggio d'interrogazione con infrastruttura datawarehouse simile a SQL che presenta i dati in forma di tavole. Programmare Hive è simile a programmare un database.
OozieProgrammazione del lavoro di Hadoop.
PigUna piattaforma per manipolare i dati archiviati in HDFS che include un compilatore per i programmi MapReduce e utilizza un linguaggio complesso chiamato Pig Latin. Fornisce metodi per estrarre, trasformare e caricare i dati e alcuni basic analytics, in modo da non dover scrivere dei programmi di MapReduce.
SolrUno strumento di ricerca scalabile che include indexing, reliability, central configuration, failover e recovery.
SparkUn framework di computazione con cluster open-source i cui analytics sono già in memoria.
SqoopUn meccanismo di connessione e trasferimento che sposta i dati tra Hadoop e i database relazionali.
Zookeeper   
Un'applicazione che coordina il distributed processing.

 

Distribuzione commerciale di Hadoop

Un software open-source viene creato e curato da un network di sviluppatori provenienti da tutto il mondo. Dare il proprio contributo ad Hadoop è gratuito, così come scaricarlo e utilizzarlo, anche se stanno diventando disponibili sempre più versioni commerciali (le così dette "distros"). Con i prodotti dei fornitori di software, si paga per la loro versione del framework Hadoop e si ricevono funzioni addizionali relative alle console SQL e management/administration, alla sicurezza e all'amministrazione, così come esercitazioni, documentazione e altri servizi. Tra i distros più diffusi troviamo: Cloudera, Hortonworks, MapR, IBM BigInsights e PivotalHD.

 

 

 


Inserire i dati su Hadoop

Di seguito alcuni modi per inserire i tuoi dati su Hadoop.

  • Usare i vendor connectors di terze parti (come SAS/ACCESS® o SAS Data Loader per Hadoop).
  • Usare Sqoop per importare dati strutturati da un database relazionale a HDFS, Hive e HBase. Inoltre può estrarre i dati da Hadoop ed esportarli su database relazionali e data warehouses.
  • Usare Flume per caricare costantemente i dati dai log ad Hadoop.
  • Caricare i file sul sistema usando semplici comandi di Java.
  • Creare un cron job per scansionare una cartela di nuovi file e "metterli" su HDFS quando appaiono. Questo risulta utile per operazioni come scaricare email ad intervalli regionali.
  • Montare HDFS come fosse un file system e lì copiare o scrivere i file.

Big Data, Hadoop e SAS

Il supporto di SAS per le applicazioni dei big data, Hadoop incluso, è focalizzato su un unico obiettivo - ampliare le tue conoscienze per aiutarti a prendere decisioni più accurate. Indipendentemente da come usi la tecnologia, ogni progetto dovrebbe passare attraverso un ciclo iterativo di miglioramente costante. Questo ciclo include la preparazione e la gestione dei dati, la data visualization e la data exploration nonchè lo sviluppo, l'esecuzione e il monitoraggio dei modelli analitici. In questo modo puoi dedurre delle informazioni è trasformare velocemente in grandi opportunità i tuoi big data Hadoop.

Dato che SAS si concentra sugli analytics e non sull'archiviazione, offriamo un approccio flessibile alla scelta di hardware e fornitori di database. Possiamo aiutarti a mettere in atto il mix giusto di tecnologie, incluso Hadoop e altre warehouse.

E ricorda, il successo di qualsiasi progetto dipende dal valore che apporta. Perciò le misurazioni tarate secondo generazione di entrate, margini, riduzione dei rischi e perfezionamenti del processo aiuteranno i progetti pilota ad essere più ampiamente accetatti e ad essere di maggior interesse per gli altri settori. Abbiamo riscontrato che molte aziende sono desiderose di capire come far fruttare uno o due progetti utilizzando Hadoop, con la speranza di poterne aggiungere di più in futuro.

Scopri di più su SAS e Hadoop