Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
Elaborato finale in Basi di Dati
Piattaforme per Big Data : Cloudera
Anno Accademico 2014/2015
Candidato:
Emiliano Conza
matr. N46/1349
Alla mia famiglia,
ai miei amici,
a Ester.
Indice
Indice .................................................................................................................................................... 3
Introduzione ......................................................................................................................................... 4
Capitolo 1: Big Data ............................................................................................................................ 6
1.1 Modelli dimensionali: le quattro V dei Big Data .................................................................. 8
1.2 Contesti di utilizzo dei Big Data ........................................................................................... 9
1.3 I rischi del fenomeno dei Big Data ...................................................................................... 11
Capitolo 2: Tecnologie per i Big Data ............................................................................................... 14
2.1 Le tecnologie NoSQL.......................................................................................................... 14
2.2 RDBMS vs NoSQL ............................................................................................................. 15
2.3 Tecnologie NoSQL per i Big Data ...................................................................................... 17
2.4 Apache HADOOP ............................................................................................................... 18
2.5 Hadoop: le componenti ....................................................................................................... 19
2.6 MapReduce: hands-on ......................................................................................................... 19
2.7 Hadoop Distributed File System (HDFS): hands-on ........................................................... 21
Capitolo 3: Cloudera .......................................................................................................................... 23
3.1 Cloudera Inc.: un po’ di storia ............................................................................................. 23
3.2 Cloudera Distribution of Hadoop (CDH) ............................................................................ 24
3.3 Cloudera IMPALA .............................................................................................................. 26
3.4 Cloudera IMPALA: Esempio Applicativo .......................................................................... 28
Conclusioni ........................................................................................................................................ 33
Bibliografia ........................................................................................................................................ 34
Ringraziamenti ................................................................................................................................... 36
Introduzione
“I dati sono diventati il quarto fattore produttivo, dopo i classici terra, lavoro e capitale.”
(Vincenzo Cosenza)
L’esplosione delle reti sociali, l’accelerazione senza precedenti dello sviluppo tecnologico,
la rivoluzione digitale, rappresentano alcuni degli aspetti che negli ultimi anni hanno
portato alla ribalta un nuovo fenomeno, quello dei Big Data.
I dati, prodotti dalle più svariate fonti, quali i social networks, i video e le immagini
digitali, le reti di sensori e tanti altri mezzi, sono stati recentemente protagonisti di una
crescita esponenziale che non intende arrestarsi. Il mondo odierno è quindi sommerso
dai Big Data, prodotti con notevole rapidità e nei formati più diversi, la cui elaborazione
richiede determinate risorse e tecnologie differenti dai sistemi convenzionali di
immagazzinamento e gestione dei dati.
Nel 2010, l’allora amministratore delegato di Google, Eric Schmidt, ha affermato che “nel
giro di due giorni produciamo la stessa quantità di dati generati dagli albori della civiltà
sino al 2003”.
In un contesto del genere, è apparso subito chiaro alle aziende che l’analisi di questa
grande mole di dati avrebbe potuto costituire un tesoro utile a prevedere, analizzare e
risolvere i problemi di migliaia di persone.
Combinati con sofisticate analisi di business, i Big Data hanno il potenziale per dare alle
imprese intuizioni sulle condizioni di mercato, sul comportamento dei clienti, rendendo
l’attività decisionale più efficace e veloce rispetto alla concorrenza. Il World Economic
Forum, in un rapporto pubblicato nel 2011 dal Washington Post, li ha inseriti appunto in
una nuova categoria di risorse economiche, come una materia prima.
Ci si è allora chiesti in che modo fosse possibile sfruttare al meglio le potenzialità dei Big
Data. Quale tecnologia avrebbe consentito una efficiente gestione e manipolazione di
dati di grandi dimensioni.
Tra le soluzioni adottate per affrontare la problematica dei Big Data, quella più in auge è
sicuramente rappresentata da Apache Hadoop. Hadoop è un framework Open Source di
Apache, concepito per offrire supporto ad applicazioni distribuite e semplificare le
operazioni di storage e gestione di dataset di grandi dimensioni, fornendo una alternativa
ai DBMS relazionali poco adatti alle trasformazioni dei Big Data.
In questo scenario si è inserita la piattaforma software open source “Cloudera”. Cloudera
è una distribuzione basata su Apache Hadoop, che propone componenti utili per
estendere le potenzialità di base di Hadoop, fornendo un’ampia serie di tool atti ad
analizzare una grande mole di dati.
Questo elaborato si pone l’obiettivo di effettuare una panoramica sul fenomeno dei Big
Data, soffermandosi in particolar modo sulla soluzione proposta dalla “Cloudera Inc.”,
azienda leader nel settore delle piattaforme di gestione dei Big Data.
La tesi è strutturata come di seguito specificato:
•
Nel primo capitolo verrà presentato un quadro di quali siano le potenzialità, quali
le aspettative future, e quali i rischi del fenomeno dei Big Data.
•
Nel secondo capitolo si analizzerà la piattaforma Apache Hadoop, introducendo e
descrivendo il contesto nel quale si è inserita la distribuzione Cloudera, oggetto
dell’elaborato. Ci si soffermerà in un primo momento sulle tecnologie NoSQL,
analizzando le differenze con i database tradizionali, i RDBMS.
•
Infine nel terzo ed ultimo capitolo si entrerà nel cuore del lavoro, introducendo in
maniera approfondita CDH (Cloudera Distribution of Hadoop). Verrà presentato
un esempio di gestione dei Big Data utilizzando uno dei tool messi a disposizione
da Cloudera, ovvero “Impala”.
Capitolo 1: Big Data
“What is Big Data? A meme and a marketing term, for sure, but also shorthand for advancing trends in
technology that open the door to a new approach to understanding the world and making decision.”
Il termine Big Data è entrato negli ultimi anni a far parte dell’immaginario collettivo. Con
prepotenza si è inserito nel mondo dell’informatica, del marketing e dell’innovazione,
diventando uno dei concetti più abusati nelle moderne strategie di mercato.
Nella sua accezione più comune, il termine Big Data viene utilizzato per descrivere una
raccolta di dataset, ovvero una collezione di dati, aventi una dimensione e una
complessità tali da richiedere l’utilizzo di strumenti differenti da quelli tradizionali per
poter essere processati o analizzati.[1]
I Big Data sono ovunque, ed ogni giorno
aprono le porte verso nuovi modi di
percepire il mondo e di prendere
decisioni. L’evoluzione tecnologica ha
infatti causato un notevole incremento
dei dispositivi capaci di automatizzare
aspetti, operazioni, riguardanti la vita di milioni di persone. Attraverso questi device ogni
giorno vengono generati enormi quantità di dati, protagonisti di una crescita senza
precedenti, definiti, parafrasando un articolo uscito nel 2010 sul The Economist, un
“torrent flowing into every area of the global economy”.[2]
Per avere un’idea generale sui numeri che descrivono i Big Data, è possibile osservare i
seguenti dati riferiti all’anno 2010:[3]
•
Google riceve più di 2 milioni di query di ricerca al minuto;
•
Ogni giorno vengono inviati 340 milioni di messaggi (tweet) tramite il social
network Twitter;
•
Un motore di un aereo, genera circa 10 TB di dati ogni trenta minuti di volo.
Numeri, è vero, che da soli non rappresentano di certo una spinta all’innovazione, ma
che non passano inosservati catturando l’attenzione della grande maggioranza dei
ricercatori. Numeri, che danno vita ad una serie di domande, volte a comprendere quali
siano le reali opportunità e le implicazioni derivanti dall’utilizzo e dall’analisi di grandi
moli di dati.
Ma allora, quale impatto hanno i Big Data nella società moderna? Facciamo giusto un
paio di esempi. Uno studio pubblicato nel 2011 da Erik Brynjolfsson e dai suoi colleghi del
MIT rivela che le imprese che hanno basato le loro politiche sui dati a disposizione hanno
aumentato il tasso di produttività del 5-6% rispetto a quelle che non l'hanno fatto.
Netflix, il popolare sito di streaming americano, ha sfruttato il suo database, ricco di
ricerche, recensioni degli iscritti, per effettuare uno studio statistico culminato nel
finanziamento della serie “House of Cards”. Basata sull’omonimo romanzo di Michael
Dobbs, si è rivelata essere un autentico fenomeno mondiale.[4]
Insomma, i Big Data rappresentano il nuovo strumento che rende “misurabile” la società.
Spingono verso una nuova scienza dei dati, in grado di misurare e, in prospettiva,
prevedere crisi economiche, epidemie, diffusione di opinioni, distribuzione delle risorse
economiche, bisogni di mobilità.[5]
1.1 Modelli dimensionali:
ali: le quattro V dei Big Data
Nel corso degli anni molti analisti hanno sviluppato dei modelli dimensionali per definire
il concetto dei Big Data. In particolare, le caratteristiche costitutive dei Big Data, possono
essere racchiuse nel cosiddetto
“Modello
llo delle quattro V”,
V” avente
le seguenti peculiarità:
•
Volume: E’ indubbio che il
volume
vada
a
rappresentare una delle
principali
caratteristiche
dei dati. L’aggettivo “Big”
con cui si descrive questo
nuovo fenomeno, è significativo in tal senso. Il volume indica la dimensione
effettiva del dataset, e si riferisce alla capacità di memorizzare e accedere a
grandi quantità di dati (per alcune compagnie nell’ordine dei Petabyte1, per altre
nell’ordine degli Zettabyte2). Facebook, solo nel 2012, contava una mole
mol di dati
pari a 100 petabytes.
•
Varietà: I dati presi sotto esame risultano
risultano essere fortemente eterogenei. Testi,
immagini, file audio, video, messaggi, pagine Web, file di weblog e altro ancora
producono un costante flusso di dati di differente tipologia. Un’altra
classificazione si introduce per distinguere i dati generati automaticamente dai
dati generati dagli utenti (come quelli dei social network). In un contesto del
genere, appare chiaro che i dati da analizzare sono “dati non strutturati”,
difficilmente
nte gestibili con i sistemi tradizionali e che richiedono l’introduzione di
nuove specifiche tecnologie.
•
1
2
Velocità: Le informazioni che costituiscono i Big Data vengono generate in
Petabyte: 1015 byte.
Zettabyte: 1021 byte.
maniera sempre più rapida. Tali moli informative devono essere immagazzinate e
analizzate con altrettanta prontezza e rapidità, quasi real time. Individuare una
tendenza, un’opportunità prima della concorrenza, è la chiave per trarre vantaggi
competitivi ed economici.
•
Veridicità: Avere tante informazioni su un determinato oggetto o soggetto, non
implica necessariamente che quelle informazioni siano utili o cariche di
significato. Bisogna eliminare dall’informazione ottenuta quello che è il possibile
“rumore” in essa contenuto. La veridicità indica appunto la quantità di valore
informativo utile che è possibile estrarre dal dato.
A partire dal 2001, quando l’analista Doug Laney aveva definito il modello descrittivo
classico dei Big Data come un semplice modello tridimensionale, le caratteristiche
sopraelencate hanno subito modifiche e aggiornamenti. Non è da escludere che nei
prossimi decenni vengano introdotte altre caratteristiche volte a migliorare l’accuratezza
del modello.
1.2 Contesti di utilizzo dei Big Data
Non si riescono a comprendere appieno le potenzialità derivanti dall’uso dei Big Data,
finché non vengono citati alcuni esempi di utilizzo. E’ quindi opportuno addentrarsi in
quelli che sono i contesti di utilizzo dei Big Data, in modo da ottenere un riscontro
empirico sui vantaggi che questa tecnologia può assicurare.
Uno dei campi applicativi principali, è sicuramente quello aziendale. Ricavando
informazioni da tweet, blog, commenti sui social network, l’azienda può facilmente
creare un profilo di un cliente ed aggiornarlo con quelle che sono le sue percezioni,
impressioni e idee sui vari prodotti. Di conseguenza riesce ad offrire campagne
pubblicitarie e prodotti strettamente mirati. Nell’ambito degli acquisti online, le aziende
utilizzano strumenti come il “motore di raccomandazioni” (recommendation engine), per
suggerire ai clienti prodotti vicini ai loro interessi.
Amazon ad esempio, analizzando i dati dei clienti e gli acquisti passati, gestisce il suo
recommendation engine utilizzando l’espressione “you may also like…”. Come dichiarato
dall’azienda, il motore analitico per i consigli di acquisto ai consumatori, ha avuto un
impatto sui ricavi sostanziale, con una crescita delle vendite pari al 30%.
Le potenzialità dei Big Data non si fermano a questo, inserendosi con efficacia in altri
contesti di utilizzo. Spostando l’attenzione negli Stati Uniti, un interessante esempio
applicativo è legato al settore meteorologico. Il “Centro di Analisi degli Uragani” analizza i
dati che ha a disposizione provando a stimare l’intensità e i percorsi degli uragani che si
abbattono sul suolo americano. Una tecnica singolare prevede l’utilizzo di informazioni
sulla localizzazione degli utenti, i cosiddetti GIS DATA (Geographic Information System)
per gestire i soccorsi, che vengono così direzionati correttamente.
In uno scenario simile, non deve sorprendere il fatto che anche Obama, nelle ultime
presidenziali vinte, abbia sfruttato tecnologie di analisi del web per raccogliere una
ingente mole di dati. Con queste informazioni, ha con più facilità trovato potenziali
votanti, convinto gli indecisi, e indirizzato la campagna elettorale su argomenti di
interesse.
Analizziamo adesso due recenti esempi di utilizzo dei Big Data. Nel Tour de France 2015,
corsa ciclistica che si svolge nel mese di Luglio, ogni bicicletta è stata equipaggiata di un
dispositivo GPS, e di molteplici sensori per catturare ogni tipo di dato relativo alla
performance
del
corridore.
“Dimension Data”, l’azienda che ha
finanziato
tale
esperimento,
ha
potuto elaborare e analizzare i dati
provenienti dai rilevatori posizionati
sotto
il
sellino
Quotidianamente
Figura – Si può notare il calo della velocità dei ciclisti in
corrispondenza della zona dei rifornimenti.
dei
si
ciclisti.
dava
la
possibilità ai tifosi di visualizzare le
informazioni più importanti relative alle prestazioni sportive dei ciclisti, come ad
esempio:[6]
•
La velocità massima, velocità e percorrenza medie per kilometro;
•
I ciclisti più veloci nelle salite più impegnative;
•
La velocità media di tutti i concorrenti;
•
Il corridore che ha mantenuto maggiormente le prime posizioni.
Queste ed altre informazioni che i corridori stessi hanno utilizzato per valutare in quale
momento della corsa migliorare le proprie performance in modo da avvantaggiarsi sugli
avversari. Una novità assoluta di grande impatto, ed anche un modo per gli organizzatori
per tenere sotto controllo eventuali prestazioni “anomale” dei ciclisti, in uno sport che si
batte in prima linea nella lotta contro il doping.
Una tra le ultime innovazioni che sfruttano il fenomeno dei Big Data, risponde al nome di
BreezoMeter. BreezoMeter è una piattaforma che permette di reperire, in tempo reale, i
dati sull’inquinamento atmosferico e la qualità dell’aria in ogni singola strada di ogni città
del globo.[7]
Selezionate delle stazioni di monitoraggio, tramite dei sensori, BreezoMeter cattura un
ingente numero di dati, con i quali analizza il livello di inquinamento e la qualità
dell’atmosfera. L’applicazione, per Android e iOS, ha avuto un grande seguito, ed è stata
premiata, insieme ad altre idee, dal presidente Obama, “per l’impegno profuso volto a
migliorare la vita delle persone fornendo loro un servizio per risanare l’ambiente in cui
vivono”.
1.3 I rischi del fenomeno dei Big Data
E’ veramente tutto oro quel che luccica? A rileggere quanto scritto finora, sembrerebbe
di si. Tuttavia anche i Big Data presentano alcuni aspetti negativi, vincoli da rispettare che
se violati potrebbero vanificarne i vantaggi.
Molte aziende considerano i seguenti parametri fondamentali per qualificare
correttamente i dati:[8]
•
Completezza: identificazione degli elementi necessari per descrivere con pienezza
una entità;
•
Accuratezza: i dati devono essere conformi ai valori reali, rispettando
determinate regole di precisione;
•
Consistenza, o coerenza: è opportuno che vi sia assenza di contraddizione nei
dati;
•
Freschezza: i dati forniti devono essere ragionevolmente recenti;
•
Assenza di duplicazioni: garantire che campi, record, tabelle si presentino
all’interno dello stesso sistema oppure in sistemi diversi una sola volta, evitando
riproduzioni.
Problematiche che affliggono i Big Data riguardano in particolar modo le modalità di
estrapolazione dell’informazione da collezioni di dati. Per riuscire a comprendere questo
concetto, risulta necessario fare un esempio.
Quando in precedenza si è parlato dei vari contesti di utilizzo dei Big Data, non è stato
menzionato un servizio web realizzato da Google, il cosiddetto “Google Flu Trends”.[9]
Il colosso di Mountain View, nel 2008, finanziò questo progetto dalle ambizioni
importanti: il team sosteneva di essere in grado di tracciare e monitorare i casi di
influenza negli Stati Uniti, semplicemente avvalendosi delle ricerche, riguardanti
patologie, che milioni di utenti effettuavano sul motore di ricerca. Il tutto più
rapidamente di quanto riuscisse a fare il Centro per il Controllo e la Prevenzione delle
malattie (CDC).
Un progetto accurato, economico, rapido, ma soprattutto privo di alcun fondamento
teorico! Google Flu Trends era costruito sui dati di ricerca e solo su quelli, ignorando se
esistessero o meno dei rapporti causa-effetto tra ciò che gli utenti cercavano e le loro
effettive condizioni di salute.
Il successo dei dati e dei numeri contro la teoria subì un forte contraccolpo nel 2012,
anno che fu caratterizzato da una epidemia di influenza che ebbe una maggiore risonanza
mediatica. In un contesto caratterizzato da un allarmismo generale, gli utenti, compresi
coloro che versavano in un buono stato di salute, cercarono sul motore di ricerca sempre
più informazioni relativamente ai sintomi influenzali. La naturale conseguenza fu che
Google sovrastimò di molto l’impatto reale della malattia.
Gli ingegneri di Google non si erano preoccupati di creare una qualche base teorica che
rendesse più affidabile il servizio. L’assenza di uno studio causa-effetto tra i termini di
ricerca e la diffusione dell’influenza, aveva reso fragili le correlazioni tra dati. Venne
mostrata al mondo l’altra faccia della medaglia dei Big Data. I numeri, senza contesto,
restano solo numeri.
In ultima analisi, è opportuno focalizzare l’attenzione su quella che rappresenta la
principale critica mossa nei confronti dei Big Data: la tutela della privacy. Il recente
scandalo scatenato dai documenti resi pubblici da Edward Snowden rappresenta una
ferita ancora aperta che ha lasciato strascichi enormi nell’opinione pubblica. I dati
personali utilizzati per applicare tecniche di monitoraggio di massa, venduti a terze parti,
hanno trascinato l’NSA (National Security Agency Americana) nell’occhio del ciclone,
portando alla ribalta il problema legato all’utilizzo improprio delle informazioni personali.
Trovare il giusto equilibrio tra i benefici derivanti dallo sfruttamento dei Big Data e i rischi
per la Privacy, è e sarà una delle sfide principali per i legislatori del nostro tempo. Lo
sviluppo economico passa infatti attraverso un clima di fiducia che deve instaurarsi tra
cliente e venditore. E’ proprio la mancanza di fiducia uno degli aspetti che ancora frena
tanti consumatori ad acquistare prodotti online e ad utilizzare nuovi servizi.
Capitolo 2: Tecnologie per i Big Data
In questo capitolo ci si soffermerà sui principi fondanti della tecnologia NoSQL. In particolar modo verrà
effettuato un confronto tra i database tradizionali (RDBMS), che utilizzano il modello relazionale, e i
database che sfruttano il modello NoSQL.
Questa analisi servirà per introdurre la distribuzione Apache Hadoop, di cui si parlerà in modo approfondito.
2.1 Le tecnologie NoSQL
Il fenomeno dei Big Data, come già ampiamente discusso, ha causato un aumento
esponenziale dei dati da dover trattare. I sistemi informatici si sono ritrovati a dover
elaborare sempre più informazioni, richiedendo una maggiore potenza di calcolo ma
soprattutto una migliore organizzazione per gestire efficacemente i dati. Le aziende
hanno virato verso una nuova tendenza: garantire il servizio o il contenuto rispetto alla
consistenza dei dati o alla correttezza delle informazioni. I nuovi sistemi di gestione che
hanno preso vita, differenziandosi dai database relazionali, hanno preso il nome di DBMS
NoSQL.
Il termine NoSQL, acronimo di Not only SQL, è stato introdotto per la prima volta nel
1998 dall’informatico Carlo Strozzi. Un modo per indicare che tale tecnologia non si
oppone all’utilizzo dei database relazionali. Semplicemente si propone come valida
alternativa laddove l’applicazione dei database relazionali risultasse poco adeguata.
2.2 RDBMS vs NoSQL
E’ di interesse effettuare un confronto tra i database tradizionali, di tipo relazionale, ed i
database NoSQL. La sostanziale differenza tra le due soluzioni deriva dal differente
obiettivo prefissato: i sistemi relazionali vengono utilizzati con l’intento di mantenere una
forte consistenza tra i dati; i database NoSQL sono votati a garantire alti livelli di
disponibilità dei dati ed una elevata velocità di recupero, a discapito della consistenza
dell’informazione.
Per i database relazionali (RDMBS) si parla quindi di proprietà acide, ACID, mentre per i
database NoSQL si parla di proprietà base, BASE.
Le proprietà ACID indicano:[10]
•
Atomicity - Atomicità: l’esecuzione di una transazione sul DB deve essere o totale
o nulla. Un errore prima del commit deve causare l’annullamento di tutte le
operazioni eseguite dall’inizio della transazione.
•
Consistency - Coerenza: il DB prima e dopo una transazione deve sempre trovarsi
in uno stato consistente. L’esecuzione della transazione non deve quindi violare i
vincoli di integrità.
•
Isolation - Isolamento: ogni transazione è indipendente dalle altre.
•
Durability - Persistenza: quando si raggiunge il commit della transazione, tutte le
modifiche in precedenza effettuate non dovranno più essere perse.
Le proprietà BASE sono state introdotte da Eric Browers, autore del Teorema CAP. Il
Teorema
CAP
afferma
che
un
sistema
informatico
distribuito
può
fornire
contemporaneamente solo due delle seguenti garanzie:[10]
•
Consistency: tutti i nodi vedono gli stessi dati nello stesso momento.
•
Availability: garantire che ogni richiesta al sistema riceva sempre una risposta.
•
Partition Tolerance: il sistema continua a funzionare anche a seguito del
partizionamento della rete o ad una serie di fallimenti.
Quindi sebbene sia auspicabile per un sistema godere delle precedenti garanzie, ciò non
è possibile e di volta in volta bisogna scegliere
quale garanzia sacrificare, basandosi magari sui
requisiti richiesti. Questa scelta non è da “tutto
o niente”, ma sono possibili varie sfumature:
CA, CP e AP. Notiamo ad esempio che i
database tradizionali rientrano in quelli di tipo
CA. Questo perché garantiscono coerenza e
disponibilità,
ma
non
la
tolleranza
alle
partizioni. I dati vengono memorizzati su un’unica macchina per evitare partizionamenti.
L’acronimo BASE indica le caratteristiche che un sistema deve avere rispettando il
teorema CAP:
•
Basically Available: il sistema deve garantire la disponibilità delle informazioni,
anche se i dati si trovano in uno stato inconsistente.
•
Soft State: il DB non deve garantire la consistenza dei dati in ogni istante. I DB
possono essere sottoposti a cambiamenti di stato anche in assenza di input:
vanno cioè considerati in uno stato non rigoroso, “soft”.
•
Eventual Consistency: il sistema alla fine, in assenza di ulteriori aggiornamenti,
deve diventare consistente. Ciò significa che le inconsistenze sono transitorie.
Queste caratteristiche permettono di avere una tecnologia all’avanguardia. I livelli di
disponibilità sono alti e senza tempi di attesa. E’ possibile lasciare che l’applicativo scriva
su un nodo senza aspettare che le scritture vengano replicate sugli altri nodi. Grazie
all’eventual consistency la replicazione può avvenire in seguito in maniera asincrona.
2.3 Tecnologie NoSQL per i Big Data
Le tecnologie NoSQL si sono rivelate particolarmente preziose per ciò che concerne
l’analisi dei Big Data. I motivi sono facilmente deducibili. In primo luogo va osservato che
nei database NoSQL, a differenza dei database relazionali, i dati possono essere
conservati in documenti. Pertanto garantiscono:[11]
•
Leggerezza computazionale: nel caso in cui sia necessario analizzare delle
informazioni, si analizzerà un unico documento contenente tutti i dati di interesse
e le informazioni ad essi correlate. Si evitano operazioni di aggregazione sui dati, i
quali risultano già raggruppati.
•
Assenza di schema (Schemaless): I Database non richiedono uno schema fisso.
Non utilizzando tabelle, permettono di gestire nuovi tipi di dati, compresi quelli
non strutturati o semi-strutturati.
•
Scalabilità orizzontale: L’assenza di uno schema fisso e l’aggregazione dei dati
permettono ai database NoSQL di scalare orizzontalmente, distribuendo i dati e le
operazioni su macchine fisiche differenti che agiscono parallelamente. Si ricorda
che ciò non è possibile nel caso dei database relazionali, i quali scalano in
verticale, aggiungendo risorse hardware dedicate per aumentare la capacità del
sistema.
L’adozione di Database NoSQL risulta quindi essere più competitiva in termini di
prestazioni rispetto ai Database relazionali, basandosi su una tecnologia più flessibile e
più scalabile. Caratteristiche appetibili per chi deve lavorare con i Big Data, trovandosi a
gestire un’importante mole di dati.
2.4 Apache HADOOP
All’inizio
l’inizio del nuovo millennio Google si trovò ad affrontare il problema riguardante la
gestione, elaborazione e memorizzazione dei dati su larga scala. Ci si era accorti che
bisognava utilizzare strumenti diversi dai RDBMS per gestire i propri dataset. Una sfida
complessa, ma di fondamentale importanza per un motore di ricerca che doveva
manipolare una grossa mole di informazioni.
Non essendoci alcun software sul mercato capace di dare una soluzione al problema,
furono gli stessi ingegneri di Mountain View
View a progettare e sviluppare tecnologie che
permettessero l’elaborazione distribuita di una ingente mole di dati. I risultati ottenuti
risposero al nome di “Google Map Reduce” e “Google File System”. Queste due soluzioni
erano finalizzate al calcolo distribuito,
distribuito, alla gestione e al salvataggio di file su cluster3 di
server.
In poco tempo tali tecnologie stuzzicarono l’attenzione della comunità open-source.
open
Fu
Doug Cutting, allora dipendente di Yahoo e sviluppatore di Nutch4, ad interessarsi
maggiormente, leggendo
ggendo nei progetti di Google la soluzione ai problemi di scalabilità del
suo motore di ricerca. Nacque così il framework open source Apache Hadoop, scritto
prevalentemente in Java, e finalizzato a processare grandi quantità di dati in modo
distribuito. Il nome Hadoop venne scelto da Doug Cutting per omaggiare il figlio, il cui
giocattolo preferito era un elefante peluche.[12]
3
Cluster:: insieme di computer connessi tra di loro che formano un sistema distribuito nel quale si effettuano
elaborazioni in parallelo garantendo una potenza di calcolo maggiore.
4
Nutch:: motore di ricerca open source basato su Java e sviluppato da Doug Cutting
2.5 Hadoop: le componenti
Apache Hadoop è composto da quattro moduli fondamentali:
•
Hadoop Common: include le utility generali, set di librerie e codici, utili a
supportare gli altri moduli.
•
Hadoop Distributed File System (HDFS): file system distribuito che riprende la
logica del Google File System. Si occupa di suddividere i file in blocchi per
memorizzarli su un cluster.
•
Hadoop YARN: è un framework che si occupa di gestire le risorse computazionali
di un cluster.
•
Hadoop MapReduce: sistema di elaborazione parallela, distribuita, dei dati.
Nei paragrafi successivi verranno analizzate le due componenti principali: MapReduce e
HDFS.
2.6 MapReduce: hands-on
Il paradigma MapReduce definisce una strategia per eseguire l’elaborazione dei dati su
sistemi distribuiti e con elevato parallelismo. Basa il suo principio di funzionamento sul
concetto di programmazione funzionale, in cui la condivisione dei dati è eliminata: i dati
sono passati tra le funzioni come parametri o valori di ritorno.
Il modello di calcolo deve il suo nome alle due funzioni rappresentative della
programmazione funzionale: Map e Reduce. Senza scendere troppo nel dettaglio, in
questa prima fase è possibile definirle come segue:
•
Map: tale funzione legge un insieme di record da un file di input, svolge delle
operazioni di filtraggio, e riporta come output una lista di elementi nella forma
chiave-valore. Questi sono il risultato dell’applicazione della funzione di input su
ogni elemento della lista ricevuta in ingresso.
•
Reduce: questa funzione utilizza, come input, l’output generato dalla fase di Map.
In particolar modo gli elementi con la stessa chiave vengono fusi e ordinati.
Nella nomenclatura di MapReduce si utilizza il termine “Job” per indicare un intero ciclo
di applicazioni di Map e Reduce fino alla fine dell’elaborazione, ed il termine “Task” per
indicare una singola esecuzione di una delle due funzioni che un nodo effettua.
Risulta di interesse analizzare, più nel dettaglio, l’architettura del paradigma MapReduce.
Il cluster di server può essere visto come un insieme di nodi connessi. I nodi possono
essere di due tipologie. Distinguiamo:[13]
•
Compute Nodes: Anche detti Slave Nodes, sono dei TaskTracker, ovvero semplici
esecutori di task.
•
Master Nodes: Nodi che fungono da JobTracker, ossia destinati a gestire i nodi
adiacenti, attivandoli o disattivandoli a seconda dell’operazione che devono
effettuare.
Come è possibile vedere dalla figura, solitamente per ogni cluster vi è un solo JobTracker.
Il funzionamento complessivo passa per i seguenti step:
•
Un client richiede l’esecuzione di una specifica operazione. Il JobTracker attiva
allora una serie di TaskTracker in base alla loro vicinanza ai nodi che contengono i
dati di interesse da elaborare.
•
I TaskTracker estraggono i dati da elaborare ed attivano la funzione Map(). In
questo modo vengono prodotte le coppie chiave/valore. Notificano poi al
JobTracker di aver terminato il loro lavoro.
•
Il JobTracker può quindi avviare la fase di Reduce. In questa fase vi è una prima
operazione di ordinamento, durante la quale i TaskTracker ordinano i risultati per
chiave. Poi vi è una fase di aggregazione che precede l’esecuzione della funzione
Reduce, con la creazione dell’output. Il risultato viene salvato in vari file su HDFS.
MapReduce rappresenta quindi uno strumento molto potente per poter eseguire in
parallelo numerose tipologie di calcolo, permettendo la gestione di quantità enormi di
dati. La caratteristica più interessante risiede nel fatto che, essendo un Framework, sta
all’utilizzatore specificare gli input, i file di output, le funzioni Map e Reduce tramite
implementazioni di interfacce o classi astratte Java.
2.7 Hadoop Distributed File System (HDFS): hands-on
HDFS è un file system distribuito sul quale si appoggia Hadoop. E’ stato creato con
l’obiettivo di memorizzare grandi quantità di dati, archiviando i file in un cluster di
computer visti come una sola unità di memorizzazione.
I file vengono suddivisi in blocchi ed ogni blocco viene distribuito in uno o più nodi del
cluster. L’architettura è di tipo master/slave. I nodi infatti possono essere di due tipi: si
parla di DataNode se hanno semplicemente il compito di conservare i dati, mentre si
parla di NameNode se fungono da Master con compiti di gestione del file system. In
particolare gestiscono il namespace (l’elenco dei nomi dei file e dei blocchi) e
determinano come sono
distribuiti i blocchi dati.
Inoltre si occupano, tra le
altre
cose,
di
creare,
modificare ed eliminare i
file, oltre a controllarne gli
accessi
da
parte
dei
client.[14]
I blocchi hanno una dimensione configurabile per ogni file5, e sono replicati garantendo
ridondanza. Pertanto HDFS garantisce un’alta tolleranza ai guasti, e buone prestazioni in
ripresa da malfunzionamenti.
Apache Hadoop ha segnato una svolta per i colossi del web, e non solo. Le caratteristiche
precedentemente analizzate, permettono di avere una potenza di calcolo ineguagliabile
da un sistema RDBMS. Hadoop garantisce una piattaforma di archiviazione per tutte le
tipologie di dati. Anziché affidarsi a costosi hardware dedicati, permette una
elaborazione parallela, distribuita, di grandi quantità di dati tra server a basso costo.
Garantisce una elevata capacità di calcolo riuscendo a scalare in modo quasi lineare su
migliaia di server. Insomma, “with Hadoop, no data is too big”.[15]
5
La dimensione di default di un blocco in Apache Hadoop è di 64MB.
Capitolo 3: Cloudera
Il progetto lanciato da Apache Hadoop ha attirato tanti estimatori, soprattutto tra coloro
che volevano cavalcare l’onda del fenomeno dei Big Data.
In questo contesto si è inserita la società Cloudera Inc.,
operante nel settore dell’Information Technology, ed
intenzionata a diventare l’azienda leader nel settore delle
piattaforme di gestione dei Big Data.
3.1 Cloudera Inc.: un po’ di storia
La società è stata fondata nel 2008, sotto la spinta di tre ingegneri di primissimo livello,
Christophe Bisciglia, Amr Awadallah e Jeff Hammerbacher, provenienti rispettivamente
da Google, Yahoo e Facebook. Nel 2009 si aggiunge Doug Cutting, famoso per aver
contribuito alla creazione di Apache Hadoop.[16] In poco tempo l’opinione pubblica inizia
ad interessarsi all’azienda, incuriosita dal crack che figure professionali di così alto
spessore avrebbero inevitabilmente provocato nell’azienda e sul mercato. Questo
interesse è possibile tradurlo in numeri: nel 2012, dopo soli 4 anni dalla nascita, Cloudera
poteva già contare su oltre 400 partner e su 30000 persone già formate sulla
tecnologia.[17]
Nel Marzo 2009, la Cloudera Inc. annuncia lo sviluppo di una distribuzione basata su
Apache Hadoop, open-source: il ‘crack’ che il mercato stava aspettando.
Nel Giugno 2013, Tom Reilly, in precedenza dipendente di Hewlett-Packard, assume il
ruolo di CEO della società. Durante la sua presentazione, afferma che il mercato relativo
ai Big Data è ancora in continua espansione, e che Cloudera può aspirare a raggiungere
un valore di 20 miliardi di dollari.[18] Poche parole, che servono a garantire all’azienda
nuovi ingenti investimenti, frutto di contratti di partnership con società di alto livello.
La collaborazione più importante viene instaurata con Intel Corporation, a seguito di un
investimento di ben 740 milioni di dollari con i quali Intel acquisisce un pacchetto
azionario del 18%. La collaborazione si rivela un successo: nel giro di un anno le due
società migliorano le prestazioni della distribuzione Hadoop di Cloudera di almeno due
volte e mezza riguardo all’encryption, senza impattare sulle performance del sistema.
Inoltre grazie ai recenti processori Xeon di Intel, sono state accelerate le prestazioni di
analisi dei dati garantendo una buona sicurezza e affidabilità.[19]
3.2 Cloudera Distribution of Hadoop (CDH)
Il progetto più importante portato avanti dalla Cloudera Inc. è rappresentato da CDH,
acronimo di Cloudera Distribution of Hadoop. Si tratta di una distribuzione di Apache
Hadoop popolare, completa, open-source, proposta da Cloudera.
In particolare CDH possiede, oltre alle caratteristiche standard di Hadoop, una serie di
componenti aggiuntive, utili ad estendere le potenzialità di base della piattaforma
Apache.
CDH gode di determinate proprietà, nel seguito specificate:[20]
•
Flessibile: consente la memorizzazione di qualsiasi tipo di dato e di eseguire
svariate operazioni di calcolo riguardanti elaborazioni batch, SQL interattivo,
calcolo statistico ed altro ancora.
•
Integrato: sii integra perfettamente ed in maniera rapida con la piattaforma
Hadoop.
•
Sicuro: permette
ermette di processare e controllare
co
i dati sensibili.
•
Scalabile ed Estensibile:
Estensibile in grado di soddisfare una vasta gamma di applicazioni.
•
Alta disponibilità:
disponibilità permette
ermette di eseguire carichi di lavoro particolarmente critici
con la massima sicurezza.
•
Aperto: concede
oncede i propri benefici quasi
quasi a costo zero, essendo al 100% una licenza
Apache open-source.
source.
CDH,
DH, come detto, affianca ad Hadoop un insieme di componenti con lo scopo di offrire
una soluzione unificata per elaborazioni batch, SQL interattivo, ricerca interattiva.
interattiva In
particolare distinguiamo
inguiamo i seguenti elementi costitutivi:
•
Impala: rappresenta un motore per interrogazioni SQL open source. Permette di
utilizzare il linguaggio SQL per comunicare con Hadoop come se fosse un database
tradizionale.
•
HBase: è una base dati open source, NoSQL,
NoSQL, caratterizzata da una gestione
strutturata di dati sotto forma di tabelle di grandi dimensioni.
•
Cloudera Search:: permette di integrare la piattaforma Hadoop con un sistema di
ricerca full-text.
text. L’idea
è quella di dare a tutti
la
possibilità
di
effettuaree
ricerche
all’interno
di
un
cluster Hadoop, senza
per forza utilizzare il
linguaggio SQL.[21]
•
Apache Spark: è un framework complementare al MapReduce di Apache, che si
prefissa l’obiettivo di migliorarne le performance, velocizzando l’elaborazione dei
dati in memoria.
3.3 Cloudera IMPALA
Cloudera Impala è un progetto software open source realizzato da Cloudera, e
rappresenta una delle novità più interessanti della società di Palo Alto. La nascita di
Impala risale al 2012, quando venne rilasciata una versione di test beta pubblica.
L’azienda era affascinata dall’idea di portare un supporto per effettuare query real-time
all’interno di Apache Hadoop.
Cloudera Impala è appunto un motore per interrogazioni SQL ad elaborazione parallela di
massa (MPP6) per dati archiviati in computer in cui viene eseguito Apache Hadoop.[22]
Il progetto permette agli utenti di eseguire query SQL per i dati memorizzati in HDFS e
HBASE in tempo reale, senza richiedere lo spostamento dei dati o la loro trasformazione.
Inoltre utilizza gli stessi formati di file, i metadati, la sintassi SQL, i driver ODBC e
l’interfaccia utente di Apache Hive, MapReduce ed altri software Hadoop, fornendo una
piattaforma familiare e unificata per le query real time.
Per ottenere una bassa latenza, Impala ‘elude’ MapReduce ed accede direttamente ai
dati attraverso un apposito motore di query distribuito. Evita le operazioni di
Map/Shuffle/Reduce e la latenza che l’esecuzione di queste operazioni avrebbe
comportato.
Dal punto di vista architetturale:
6
MPP: con la sigla MPP si indica l’elaborazione ad elevato parallelismo che è un tipo di calcolo parallelo dove
centinaia o migliaia di processori sono usati in modo coordinato all’interno di unico grande computer.
Il server Impala è costituito da tre componenti principali: l’impala ‘Daemon’, l’impala
‘Statestore’ e l’impala ‘Catalog Service’. Nel dettaglio:
•
Il cuore dell’architettura è rappresentato dall’impala “Daemon”. E’ un processo
attivo su ogni nodo del cluster, conosciuto come “impalad process”. Ha il compito
di leggere e scrivere file dati, accettare query trasmesse dall’impala-shell, jdbc,
odbc. Inoltre parallelizza le query distribuendo il carico di lavoro sugli altri nodi.
•
L’impala “Statestore” controlla frequentemente lo stato dei vari “deamons” su
tutti i nodi del cluster, trasmettendo poi le sue conclusioni ad ogni nodo. Il
processo demone che lo rappresenta è chiamato “statestored”.
•
L’impala “Catalog Service” trasmette le modifiche ai metadati, a seguito di
istruzioni SQL, a tutti i nodi del cluster. E’ fisicamente rappresentato da un
processo demone chiamato “catalogd”.
Nel dettaglio, l’esecuzione di una Query su Impala passa attraverso i seguenti step:
•
La richiesta di query viene inviata ad uno specifico demone impala nel cluster
tramite ODBC/JDBC, Beeswax (Gui) o Shell. Il nodo dove la query viene eseguita
viene registrato e diventa il nodo coordinatore centrale.
•
Il “query planner” genera un “query plan” basandosi sulle informazioni dei
metadati. Queste informazioni possono essere salvate nella cache, oppure
necessitano di essere recuperate e aggiornate dall’Hive metastore, dall’HDFS
namenode o dall’impala statestore.
•
Il “query coordinator” invia una richiesta di esecuzione ad ogni “query execution
engine” presente nel cluster.
•
Il “query execution engine” esegue un frammento di query sui propri dati locali
con query aggiuntive che vengono eseguite su ulteriori nodi impala se necessario.
•
Il risultato finale viene trasmesso tra gli impala deamons e poi ritorna al client.[24]
3.4 Cloudera IMPALA: Esempio Applicativo
L’elaborazione dei dati che avviene localmente su ogni nodo, permette di evitare i colli di
bottiglia della rete. Inoltre nessuna forma di conversione dei dati è richiesta, così da
eliminare questa forma di overhead. Insomma, l’architettura sviluppata da Impala
permette di effettuare query su tutti i dati, immediatamente, con un delay pressoché
nullo.[25]
Un riscontro pratico a quanto affermato è possibile trovarlo effettuando un confronto tra
Hive e Impala, analizzando i tempi di risposta alle query. Hive è un’infrastruttura
datawarehouse7 costruita su Hadoop utile per effettuare analisi di Big Data. Si avvale del
file system HDFS e di MapReduce, ma permette l’utilizzo di un linguaggio SQL (Hive-QL)
per effettuare query sui cluster Hadoop. Tale strumento è molto adatto per lavorare in
modalità batch, non interattiva, ma paga in termini di prestazione per analisi real time.
Tecnicamente Impala ha i suoi processi demoni che vengono eseguiti sui nodi del cluster
e che fungono da cache per alcuni dati presenti su HDFS: in questo modo si riescono ad
avere efficienti tempi di risposta alle query, eludendo l’overhead che l’esecuzione di vari
job MapReduce provocherebbe.
Relativamente alle query legate ad operazioni di I/O, Impala guadagna in performance in
un range che va dalle 3 alle 5 volte. Per query più complesse, che in Hive richiederebbero
numerosi fasi di MapReduce, il guadagno in performance si avvicina al 50%. Infine, in uno
scenario nel quale le tabelle risiedono in memoria centrale, usata come cache, Impala
risulta essere quasi 100 volte più veloce rispetto ad Hive.
Cloudera Inc. fornisce una Quick Start VMs su cui è eseguito CentOS 6.4, disponibile per
Virtual Box, contenente un cluster di Apache Hadoop (nodo singolo) e Cloudera Manager
per gestirlo. Per avere fluidità nell’utilizzo, la macchina virtuale richiede un minimo di 4gb
di ram.
7
Data Warehouse: archivio informatico contenente i dati di una organizzazione, progettati per consentire di produrre
facilmente analisi e relazioni utili a fini decisionali-aziendali.
Da terminale è possibile utilizzare Cloudera Impala ed Hive. Nel seguente elaborato verrà
quindi valutato praticamente come cambia il tempo di risposta ad una query tra le due
tecnologie.
Per poter utilizzare Impala, si utilizza l’espressione “impala-shell”. L’esempio prevede la
creazione di un database, chiamato “University”, e composto da tre tabelle, ovvero
“Studenti”, “Corsi”, “Carriere”. La creazione del database e delle tabelle viene effettuata
utilizzando il linguaggio SQL di Impala, come di seguito mostrato:
La creazione del database precede il suo utilizzo (“use”), ed apre alla creazione delle
tabelle (“create table”). Possono essere mostrate utilizzando le istruzioni “show” e
“describe”:
Le tabelle vanno popolate con i dati. Verrà mostrato un esempio di inserimento dei valori
nella tabella Studenti:
Tramite una semplice query di selezione, è possibile constatare come la creazione delle
tabelle e l’inserimento dei valori sia andato a buon fine. Il database è popolato:
A questo punto è possibile effettuare una query un po’ più complessa, che richieda
l’utilizzo di uno o più JOIN, in modo da valutare il tempo di risposta con Impala e poi
confrontarlo con i risultati
che si ottengono usando
Hive.
Si
ricercano
esempio
il
nome
esami,
con
ad
degli
relativa
votazione e data, sostenuti
dallo
studente
‘Emiliano
Conza’.
Come
terminale,
suggerisce
il
tempo
il
di
risposta supera di poco un secondo. Il risultato è stato cerchiato in rosso.
Per uscire dall’impala-shell, basta utilizzare l’istruzione “quit”. Il database creato con
Impala può essere utilizzato anche da Hive. Risulta interessante sottoporre ad Hive la
stessa query, valutando il tempo impiegato per ricevere il risultato.
Il risultato finale è ovviamente lo stesso di quello ottenuto con Impala. Tuttavia, il tempo
di risposta alla query è notevolmente aumentato con Hive. Addirittura pari a circa 69
secondi, più di un minuto, come è possibile vedere nell’immagine seguente.
Un risultato questo che si amplifica considerando la grande mole di dati su cui queste
piattaforme sono solite lavorare. Nonostante ciò, Impala non sostituisce Hive, dovendo
confrontarsi ad esempio con una bassa tolleranza ai guasti e con numerosi casi nei quali
una tecnologia basata su MapReduce risulta più efficiente. Impala trova terreno fertile
tra i Data Scientist o tra gli analisti di business che sono semplicemente interessati a dare
un’occhiata e ad analizzare alcuni dati senza necessitare di tecnologie particolarmente
robuste.
Conclusioni
Nel presente elaborato è stata focalizzata l’attenzione sul fenomeno dei Big Data, sempre
più rilevante all’interno della società moderna. La produzione dei dati segue una crescita
esponenziale, ed è stato mostrato come l’analisi efficiente di tali dati può portare
benefici alle aziende operanti in qualsiasi settore dell’economia. Sarà interessante
scoprire in che modo le società sapranno plasmare la nuova figura professionale del Data
Scientist, con competenze complete per la corretta analisi dei dati.
Sono state inoltre introdotte le tecnologie NoSQL, sottolineando in che modo si
differenziano dalle tecnologie classiche per la gestione dei Database e i vantaggi che
permettono di ottenere lavorando con una grande mole di dati, siano essi strutturati o
non strutturati. Un concetto utile per poter introdurre Apache Hadoop, soluzione
innovativa alla problematica relativa alla gestione dei Big Data. Nel dettaglio sono state
mostrate le componenti fondamentali di Hadoop, capace di gestire enormi quantità di
dati su sistemi a basso costo sfruttando il distributed computing.
In questo contesto è stata inserita un’analisi sulla Cloudera Inc., azienda leader per
quanto riguarda le piattaforme di gestione dei Big Data. Tra le varie tecnologie che mette
a disposizione, si è scelto di analizzare nel dettaglio la soluzione proposta da Cloudera
Impala, effettuando un confronto pratico con un’altra infrastruttura costruita su Hadoop,
ovvero Hive.
Il mercato delle soluzioni tecnologiche relative al fenomeno dei Big Data è solo agli albori
della sua esistenza. Tanto i Big Data quanto le piattaforme utili a gestirli sono destinati a
far parlare di sé ancora per tanti anni.
Bibliografia
[1] https://it.wikipedia.org/wiki/Big_data, Big Data, Wikipedia 2015.
[2]http://www.mckinsey.com/insights/business_technology/big_data_the_next_frontier_for_innovation,
“Big Data: The next frontier for innovation, competition and productivity”, 05/2011.
[3] http://marciaconner.com/blog/data-on-big-data/, “Data on big data”.
[4]https://www.mckinsey.it/idee/chi-trova-i-big-data-trova-un-tesoro, “Chi trova i big data trova un
tesoro”, Il Sole 24 Ore, Barton D., 13/12/2012.
[5] http://novareview.ilsole24ore.com/lavitanova/230787, “Siamo tutti pollicini digitali”, Dino Pedreschi,
06/12/2012.
[6] http://www.bitmat.it/blog/news/46246/dimension-data-sale-in-sella-con-il-tour-de-france, “Dimension
Data sale in sella con il Tour de France”, 08/07/2015.
[7]
http://thenexttech.startupitalia.eu/2015/07/15/breezometer-la-startup-che-monitora-
linquinamento-dellaria-con-i-big-data/, “BreezoMeter la startup che monitora l’inquinamento
dell’aria con i big Data”, 15/07/2015.
[8] http://www.soiel.it/res/news_dettaglio/id/208/p/bigdataquality_gartner, “Qualità dei dati e dei Big
Data: stessi principi, nuova tattica”, 25/07/2012.
[9] https://en.wikipedia.org/wiki/Google_Flu_Trends, “Google Flu Trends”, Wikipedia 2015.
[10] http://www.dataversity.net/acid-vs-base-the-shifting-ph-of-database-transaction-processing/, “ACID
vs BASE: The Shifting pH of Database Transaction Processing”, 01/03/2012.
[11] http://blog.artera.it/programmazione/sql-nosql-database-non-relazionali, “SQL e NoSQL: cosa sapere
sui database non relazionali”, Giovanni Barbieri, 24/06/2014.
[12] https://en.wikipedia.org/wiki/Apache_Hadoop, “Apache Hadoop”, Wikipedia 2015.
[13] http://www.html.it/pag/51684/map-reduce-architettura-e-funzionamento/,“MapReduce: Architettura
e funzionamento”, Gaetano Esposito, 26/01/2015.
[14] http://hadoop.apache.org/docs/r1.2.1/hdfs_design.html, “HDFS Architecture Guide”.
[15] http://www.cloudera.com/content/cloudera/en/about/hadoop-and-big-data.html, “Hadoop and Big
Data, Cloudera Inc.”, 2015.
[16] https://en.wikipedia.org/wiki/Cloudera, Cloudera Inc., 2015.
[17] http://juku.it/due-parole-su-big-data-e-cloudera/, “Due parole su Big Data e Cloudera”, Enrico
Signoretti, 2012.
[18]http://www.impresacity.it/big-data-analytics/3448/cloudera-il-big-data-che-piace-al-mercato.html,
“Cloudera, il big data che piace al mercato”, 21/03/2014.
[19] http://www.techweekeurope.it/security/intel-e-cloudera-bilancio-positivo-per-il-loro-hadoop-81283,
“Intel e Cloudera: bilancio positivo per il loro Hadoop”, TechWeekEurope, 12/05/2015.
[20] http://www.cloudera.com/content/cloudera/en/products-and-services/cdh.html, Cloudera Inc., 2015.
[21] http://www.hostingtalk.it/cloudera-hadoop-una-ricerca-per-tutti_-c0000061G/, “Cloudera Hadoop:
una ricerca per tutti!”, HostingTalk, 2013.
[22] https://it.wikipedia.org/wiki/Cloudera_Impala, “Cloudera Impala”, Wikipedia 2015.
[23]http://www.cloudera.com/content/cloudera/en/documentation/cloudera-impala/v2-0x/topics/impala_components.html, “Components of the Impala Server”, Cloudera Inc., 2015.
[24] http://training.cloudera.com/elearning/impala/, “An Introduction to Impala”, Cloudera Inc., 2015.
[25]http://blog.cloudera.com/blog/2012/10/cloudera-impala-real-time-queries-in-apache-hadoop-for-real/,
“Cloudera Impala: Real-Time Queries in Apache Hadoop, for Real”, Cloudera Inc., 2015.
Ringraziamenti
Proviamo ad immaginare il percorso universitario come una lunga strada che si snoda attraverso
monti e litorali. Ognuno è protagonista di determinate esperienze che portano a definirla, rendendola
unica. Nella soggettività che la creazione di questa strada implica, trovano tuttavia spazio componenti
oggettive, comuni in ogni percorso. Ci sono i corsi da seguire, che io vedo come tante stazioni di
servizio. Ci sono gli esami da sostenere, autentiche curve a gomito che si trovano scalando collinette e
monti. C’è la firma, sul libretto, che ti riporta su un lungomare arioso, a passeggiare mentre un sole
caldo si staglia in cielo.
Stazioni di servizio, strade più o meno percorribili… a voi non sembra un paesaggio povero, spoglio?
Sì, lo è! Lo è perché effettivamente manca il meglio, quel ‘quid’ che rende gli anni universitari speciali:
gli incontri, le nuove esperienze, le amicizie. Insomma, ritorniamo su quella strada, ma questa volta
aggiungiamo un po’ di verde sulle montagne, qualche scoglio in mezzo ad un mare limpido e calmo,
vialoni alberati, parchi, castelli e potrei proseguire così all’infinito, popolando un paesaggio
immaginario nello stesso modo in cui numerose persone, in questi anni universitari, hanno popolato
la mia vita. E’ a queste persone che voglio dedicare qualche minuto, riservando loro un po’ di spazio
su questa tesi.
Innanzitutto, ne approfitto per ringraziare il mio relatore di tesi, l’Ing. Vincenzo Moscato, per i suoi
utili consigli durante la stesura dell’elaborato.
Grazie a Giovanni, mio primo coinquilino, che ha saputo insegnarmi, quando ero solo una matricola
diciottenne inesperta, l’affascinante arte del vivere da studente fuorisede.
Grazie ai miei colleghi, Luca, Boffa, Samantha, Livio, Davide, Valentina, Brenda, Frank, Andrea, Kevin,
che in un modo o nell’altro sono stati presenti durante la mia esperienza universitaria, non facendo
mai mancare il loro supporto e la loro affabile compagnia.
Grazie a Giuseppe, Gaetano, Francesca, Raffaele, Antonio, Nicolò, Sabrina, Roberto, e ai nostri pranzi
‘semestrali’ durante i quali le soddisfazioni o le delusioni universitarie passavano al vaglio di un buon
vino paesano.
Grazie alle mie “coinquiline” preferite, Stefania, Luisa, Marilena, che mi hanno accolto come uno di
casa, viziandomi con pasti prelibati, e sostenendomi durante il mio percorso.
Grazie agli amici di Napoli, Federica, Davide, Egidio, Simona, Frosone, Benito, presenza costante in
questi anni, compagni di uscite serali, tra passeggiate in centro e concerti ‘degradati’.
Grazie ai miei coinquilini, Tommaso, Salvatore, Michele e Lorenzo, che hanno viaggiato insieme a me,
aiutandomi a realizzare i miei obiettivi, condividendo lo stesso tetto e gli stessi interessi.
Grazie agli amici del paesello, Angelo, Antonio, Giuseppe, Marco, compagni da una vita, essenziali in
quei weekend nei quali tornavo in paese con la necessità di staccare la spina.
Grazie ai miei cugini, tutti. Grazie a Marianna e Tiziana, la mente ed il braccio per le bomboniere.
Grazie a Francesco e alla nostra vacanza londinese. Grazie a Roberto, sostegno fondamentale nel
primo anno di università, tra partite del Napoli, concerti e numerose invenzioni culinarie…notturne.
Grazie a Filippo, un fratello acquisito, collega, amico, compagno di stanza, compagno di avventure.
Alla scoperta dei tesori di Napoli, sempre in rampa di lancio per fare nuove esperienze. Grazie al
proiettore ed al giradischi, al whiskey canadese ed al punch abruzzese, alla pasta e patate con provola
alle quattro del pomeriggio e alle frittatine da Di Matteo.
Un ringraziamento che parte dal profondo del cuore ad Ester, entrata a far parte della mia vita nel
periodo più difficile della mia carriera universitaria. Grazie perché mi hai dato la forza per rialzarmi,
per continuare a perseguire con convinzione i miei obiettivi, con la tua semplicità disarmante. Grazie
per essere stata il regalo più inatteso ed entusiasmante di questi anni universitari.
Infine un ringraziamento speciale va alla mia famiglia, per aver avallato il mio desiderio di studiare a
Napoli e per essere stata sempre presente durante il mio percorso universitario. Grazie a mio fratello
Nicola per i consigli che ha saputo darmi e per tutte quelle giornate trascorse insieme, arrivate quasi
per caso, che ricordo sempre con piacere. Grazie alle telefonate cariche di significati con mio padre.
Grazie, infine, a mia madre, per non aver fatto mai mancare nulla nella mia valigia, assecondando
sempre, con naturalezza, ogni mia richiesta.
Emiliano
Scarica

Elaborato Conza Emiliano N46001349