INTRODUZIONE AI BIG DATA
E ALLA SCIENZA DEI DATI
Lezione 5
I Big Data; le tecnologie dei Big Data (MapReduce, Hadoop, Hive
e Pig); il cloud computing
Vincenzo Manzoni	

vincenzomanzoni.com | me@vincenzomanzoni.com
UN’INTERESSANTE
METAFORA…
BIG DATA
• Si veda la presentazione fatta al Palazzolo Digital Festival 2013.
MAP REDUCE (1/2)
• Modello di programmazione adatto a
processare grandi dataset.	

• Parallelo.	

• Distribuito in un cluster.	

• Adatto ad essere eseguito su hardware
comune.	

• Inizialmente sviluppato da Google
Insieme di computer connessi
che lavorano insieme, in
modo che possano essere
visti come un unico sistema.
MAP REDUCE (2/2)
• Il modello è composto da 2 procedure:	

• Map: assegna un valore a una chiave.	

• Reduce: riduce tutti i valori associati a una stessa chiave
secondo una funzione di aggregazione.	

• Esempi	

• Conteggio delle persone in un palazzo	

• Conteggio delle parole in un testo
MAP REDUCE: ESEMPIO
MAP REDUCE: ESEMPIO
MAP REDUCE: ESEMPIO
MAP REDUCE: ESEMPIO
MAP REDUCE: ESEMPIO
MAP REDUCE: ESEMPIO
MAP REDUCE:VANTAGGI E
SVANTAGGI
• Vantaggi
• Scala in modo (quasi) lineare, ovvero raddoppiando la potenza di
calcolo, si dimezza il tempo di calcolo.	

• È robusto.	

• Svantaggi
• È complesso tradurre algoritmi tradizionali nella forma Map
Reduce. 	

• In particolare, le query SQL.
MAP REDUCE: USI
• Ricerca	

• Analisi di file di log	

• Costruzione di indici analitici (inverted index)	

• Machine learning
HADOOP
• Framework che supporta applicazioni distribuite
con alto accesso ai dati.	

• Sviluppato attivamente daYahoo, è stato ispirato
dalla MapReduce di Google e dal Google File
System.	

• È composto da:	

• HDFS: un filesystem distribuito	

• Hadoop Common: un insieme di librerie
per l’accesso a HDFS.
HADOOP:ARCHITETTURA
HIVE
• Tecnologia per interrogare i Big Data come se
fossero tabelle SQL.	

• HiveQL	

• Produce in modo trasparente software Map
Reduce.	

• Inizialmente sviluppato da Facebook.
HIVEQL
• Linguaggio dichiarativo	

• Si specifica cosa si vuole, non come ottenerle (come SQL).	

• Simile, ma non del tutto identico a SQL.	

• Esempi:	

• SELECT	
  COUNT(*)	
  

FROM	
  nyse_stocks	
  
• SELECT	
  AVG(stock_price_close)	
  

FROM	
  nyse_stocks	
  

WHERE	
  stock_symbols=‘IBM’
PIG	

• Piattaforma per creare programmi Map
Reduce.	

• Astrae la scrittura di programmi Map
Reduce in un linguaggio di più alto livello (Pig
Latin).	

• Inizialmente sviluppato daYahoo.
PIG LATIN
• Linguaggio procedurale.	

• Si specificano i vari passi per ottenere un risultato (come C,
Python, R, Java, …)	

• Esempio:	

a	
  =	
  LOAD	
  'nyse_stocks'	
  using

	
  	
  	
  org.apache.hcatalog.pig.HCatLoader();

b	
  =	
  filter	
  a	
  by	
  stock_symbol	
  ==	
  'IBM';

c	
  =	
  group	
  b	
  all;

d	
  =	
  foreach	
  c	
  generate	
  AVG(b.stock_price_close);

dump	
  d;
HIVEQLVS PIG LATIN
HiveQL Pig Latin
Tecnologia Hive Pig
Introdotto da Facebook Yahoo
Tipologia di linguaggio Dichiarativo Procedurale
Simile a SQL C, Java, Python, R
DEMO
• Esempio d’uso di Hive da pannello di controllo web	

• Confronto delle prestazioni con una interrogazione MySQL	

• Esempio d’uso di Hive da console	

• Esempio d’uso di Pig
CONFRONTO PRESTAZIONI
MYSQL E HADOOP
Prestazioni(minoreèmeglio)
0
10
20
30
40
Dimensione del dataset (GB)
0 50 100 150 200
MySQL Hadoop
Hadoop inizia ad essere conveniente
per dataset > di 100-150 GB.
IL CLOUD COMPUTING
• Insieme di tecnologie offerta da un provider che permettono di
memorizzare e elaborare dati grazie a risorse hardware e software
distribuite e virtualizzate.
OFFERTE CLOUD
• Alcuni esempi	

• Dropbox: storage	

• AWS (Amazon Web Services)	

• storage	

• calcolo	

• molto altro – lo vedremo in dettaglio.	

• Microsoft Azure	

• storage	

• calcolo, compreso Hadoop	

• Google Cloud	

• storage	

• calcolo, compreso Hadoop	

• machine learning as a service con le Google Prediction API
AWS
• Tecnologie	

• EC2: calcolo on demand	

• S3: storage on demand	

• Elastic MapReduce: Hadoop on demand (anche con Pig e
Hive)	

• Database relazionali e NoSQL
AWS
MACHINE LEARNING AS A
SERVICE
• Servizio che rende trasparente all’utente il processo di scelta del miglior
algoritmo di apprendimento supervisionato	

• L’utente carica nel servizio il proprio dataset di addestramento (spesso,
anche quello di test).	

• Il sistema addestra un modello e notifica l’utente al termine
dell’operazione.	

• A questo punto l’utente

può chiedere al modello

di classificare nuove

istanze.
MACHINE LEARNING AS A
SERVICE
• Provider di servizi di machine learning as a service	

• Google Prediction API	

• Algorithms.io (beta, su invito)	

• wise.io	

• BigML
LIBRO CONSIGLIATO
ESERCIZIO FINALE

CONSEGNA
• Siete l’analista dati di un provider di telefonia. Il vostro obiettivo è di capire se nei
prossimi 6 mesi un cliente lascerà sulla base del suo profilo d’uso.	

• Il profilo d’uso di un utente è descritto da 4 variabili:	

1. Uso voce (minuti / mese)	

2. Uso dati (MB / mese)	

3. Chiamate al servizio clienti	

4. Ritardo nei pagamenti (mesi)	

 	

Id Uso	
  voce Uso	
  da+
Chiamate	
  al	
  
servizio	
  clien+
Ritardo	
  
pagamen+
Lascia?
1 3.20 22.85 0 1 VERO
2 36.42 67.40 2 1 FALSO
3 5.44 148.13 1 0 FALSO
…
ESERCIZIO FINALE

ESPLORAZIONE E MACHINE LEARNING
1. Fare analisi esplorativa dei dati del dataset di training.Alcune domande a cui dare
risposta in modo grafico sono:	

• Esiste una correlazione tra le chiamate al supporto clienti e la chiusura di un account?	

• Esiste una relazione tra il ritardo di pagamento e la chiusura dell’account?	

• Esiste una relazione tra l’uso voce e l’uso dati?

2. Determinare il miglior modello supervisionato che predica la chiusura di un account
dalle altre 4 variabili.Algoritmi da provare sono:	

• Decision trees	

• K-NN	

!
3. Quale algoritmo performa meglio?

Introduzione ai Big Data e alla scienza dei dati - Big Data

  • 1.
    INTRODUZIONE AI BIGDATA E ALLA SCIENZA DEI DATI Lezione 5 I Big Data; le tecnologie dei Big Data (MapReduce, Hadoop, Hive e Pig); il cloud computing Vincenzo Manzoni vincenzomanzoni.com | me@vincenzomanzoni.com
  • 2.
  • 3.
    BIG DATA • Siveda la presentazione fatta al Palazzolo Digital Festival 2013.
  • 4.
    MAP REDUCE (1/2) •Modello di programmazione adatto a processare grandi dataset. • Parallelo. • Distribuito in un cluster. • Adatto ad essere eseguito su hardware comune. • Inizialmente sviluppato da Google Insieme di computer connessi che lavorano insieme, in modo che possano essere visti come un unico sistema.
  • 5.
    MAP REDUCE (2/2) •Il modello è composto da 2 procedure: • Map: assegna un valore a una chiave. • Reduce: riduce tutti i valori associati a una stessa chiave secondo una funzione di aggregazione. • Esempi • Conteggio delle persone in un palazzo • Conteggio delle parole in un testo
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
    MAP REDUCE:VANTAGGI E SVANTAGGI •Vantaggi • Scala in modo (quasi) lineare, ovvero raddoppiando la potenza di calcolo, si dimezza il tempo di calcolo. • È robusto. • Svantaggi • È complesso tradurre algoritmi tradizionali nella forma Map Reduce. • In particolare, le query SQL.
  • 13.
    MAP REDUCE: USI •Ricerca • Analisi di file di log • Costruzione di indici analitici (inverted index) • Machine learning
  • 14.
    HADOOP • Framework chesupporta applicazioni distribuite con alto accesso ai dati. • Sviluppato attivamente daYahoo, è stato ispirato dalla MapReduce di Google e dal Google File System. • È composto da: • HDFS: un filesystem distribuito • Hadoop Common: un insieme di librerie per l’accesso a HDFS.
  • 15.
  • 16.
    HIVE • Tecnologia perinterrogare i Big Data come se fossero tabelle SQL. • HiveQL • Produce in modo trasparente software Map Reduce. • Inizialmente sviluppato da Facebook.
  • 17.
    HIVEQL • Linguaggio dichiarativo •Si specifica cosa si vuole, non come ottenerle (come SQL). • Simile, ma non del tutto identico a SQL. • Esempi: • SELECT  COUNT(*)  
 FROM  nyse_stocks   • SELECT  AVG(stock_price_close)  
 FROM  nyse_stocks  
 WHERE  stock_symbols=‘IBM’
  • 18.
    PIG • Piattaforma percreare programmi Map Reduce. • Astrae la scrittura di programmi Map Reduce in un linguaggio di più alto livello (Pig Latin). • Inizialmente sviluppato daYahoo.
  • 19.
    PIG LATIN • Linguaggioprocedurale. • Si specificano i vari passi per ottenere un risultato (come C, Python, R, Java, …) • Esempio: a  =  LOAD  'nyse_stocks'  using
      org.apache.hcatalog.pig.HCatLoader();
 b  =  filter  a  by  stock_symbol  ==  'IBM';
 c  =  group  b  all;
 d  =  foreach  c  generate  AVG(b.stock_price_close);
 dump  d;
  • 20.
    HIVEQLVS PIG LATIN HiveQLPig Latin Tecnologia Hive Pig Introdotto da Facebook Yahoo Tipologia di linguaggio Dichiarativo Procedurale Simile a SQL C, Java, Python, R
  • 21.
    DEMO • Esempio d’usodi Hive da pannello di controllo web • Confronto delle prestazioni con una interrogazione MySQL • Esempio d’uso di Hive da console • Esempio d’uso di Pig
  • 22.
    CONFRONTO PRESTAZIONI MYSQL EHADOOP Prestazioni(minoreèmeglio) 0 10 20 30 40 Dimensione del dataset (GB) 0 50 100 150 200 MySQL Hadoop Hadoop inizia ad essere conveniente per dataset > di 100-150 GB.
  • 23.
    IL CLOUD COMPUTING •Insieme di tecnologie offerta da un provider che permettono di memorizzare e elaborare dati grazie a risorse hardware e software distribuite e virtualizzate.
  • 24.
    OFFERTE CLOUD • Alcuniesempi • Dropbox: storage • AWS (Amazon Web Services) • storage • calcolo • molto altro – lo vedremo in dettaglio. • Microsoft Azure • storage • calcolo, compreso Hadoop • Google Cloud • storage • calcolo, compreso Hadoop • machine learning as a service con le Google Prediction API
  • 25.
    AWS • Tecnologie • EC2:calcolo on demand • S3: storage on demand • Elastic MapReduce: Hadoop on demand (anche con Pig e Hive) • Database relazionali e NoSQL
  • 26.
  • 27.
    MACHINE LEARNING ASA SERVICE • Servizio che rende trasparente all’utente il processo di scelta del miglior algoritmo di apprendimento supervisionato • L’utente carica nel servizio il proprio dataset di addestramento (spesso, anche quello di test). • Il sistema addestra un modello e notifica l’utente al termine dell’operazione. • A questo punto l’utente
 può chiedere al modello
 di classificare nuove
 istanze.
  • 28.
    MACHINE LEARNING ASA SERVICE • Provider di servizi di machine learning as a service • Google Prediction API • Algorithms.io (beta, su invito) • wise.io • BigML
  • 29.
  • 30.
    ESERCIZIO FINALE
 CONSEGNA • Sietel’analista dati di un provider di telefonia. Il vostro obiettivo è di capire se nei prossimi 6 mesi un cliente lascerà sulla base del suo profilo d’uso. • Il profilo d’uso di un utente è descritto da 4 variabili: 1. Uso voce (minuti / mese) 2. Uso dati (MB / mese) 3. Chiamate al servizio clienti 4. Ritardo nei pagamenti (mesi) Id Uso  voce Uso  da+ Chiamate  al   servizio  clien+ Ritardo   pagamen+ Lascia? 1 3.20 22.85 0 1 VERO 2 36.42 67.40 2 1 FALSO 3 5.44 148.13 1 0 FALSO …
  • 31.
    ESERCIZIO FINALE
 ESPLORAZIONE EMACHINE LEARNING 1. Fare analisi esplorativa dei dati del dataset di training.Alcune domande a cui dare risposta in modo grafico sono: • Esiste una correlazione tra le chiamate al supporto clienti e la chiusura di un account? • Esiste una relazione tra il ritardo di pagamento e la chiusura dell’account? • Esiste una relazione tra l’uso voce e l’uso dati?
 2. Determinare il miglior modello supervisionato che predica la chiusura di un account dalle altre 4 variabili.Algoritmi da provare sono: • Decision trees • K-NN ! 3. Quale algoritmo performa meglio?