Upload
vincenzo-manzoni
View
935
Download
0
Embed Size (px)
Citation preview
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 | [email protected]
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 da Yahoo, è 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 da Yahoo.
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;
HIVEQL VS PIG LATIN
HiveQL Pig LatinTecnologia Hive Pig
Introdotto da Facebook YahooTipologia 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
Pres
tazio
ni (m
inore
è m
eglio
)
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’utentepuò chiedere al modellodi classificare nuoveistanze.
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 VERO2 36.42 67.40 2 1 FALSO3 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?