+ All Categories
Home > Data & Analytics > Introduzione ai Big Data e alla scienza dei dati - Big Data

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

Date post: 19-Feb-2017
Category:
Upload: vincenzo-manzoni
View: 932 times
Download: 0 times
Share this document with a friend
31
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]
Transcript
Page 1: Introduzione ai Big Data e alla scienza dei dati - Big Data

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]

Page 2: Introduzione ai Big Data e alla scienza dei dati - Big Data

UN’INTERESSANTE METAFORA…

Page 3: Introduzione ai Big Data e alla scienza dei dati - Big Data

BIG DATA• Si veda la presentazione fatta al Palazzolo Digital Festival 2013.

Page 4: Introduzione ai Big Data e alla scienza dei dati - Big Data

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.

Page 5: Introduzione ai Big Data e alla scienza dei dati - Big Data

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

Page 6: Introduzione ai Big Data e alla scienza dei dati - Big Data

MAP REDUCE: ESEMPIO

Page 7: Introduzione ai Big Data e alla scienza dei dati - Big Data

MAP REDUCE: ESEMPIO

Page 8: Introduzione ai Big Data e alla scienza dei dati - Big Data

MAP REDUCE: ESEMPIO

Page 9: Introduzione ai Big Data e alla scienza dei dati - Big Data

MAP REDUCE: ESEMPIO

Page 10: Introduzione ai Big Data e alla scienza dei dati - Big Data

MAP REDUCE: ESEMPIO

Page 11: Introduzione ai Big Data e alla scienza dei dati - Big Data

MAP REDUCE: ESEMPIO

Page 12: Introduzione ai Big Data e alla scienza dei dati - Big Data

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.

Page 13: Introduzione ai Big Data e alla scienza dei dati - Big Data

MAP REDUCE: USI• Ricerca • Analisi di file di log • Costruzione di indici analitici (inverted index) • Machine learning

Page 14: Introduzione ai Big Data e alla scienza dei dati - Big Data

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.

Page 15: Introduzione ai Big Data e alla scienza dei dati - Big Data

HADOOP: ARCHITETTURA

Page 16: Introduzione ai Big Data e alla scienza dei dati - Big Data

HIVE• Tecnologia per interrogare i Big Data come se

fossero tabelle SQL. • HiveQL • Produce in modo trasparente software Map

Reduce. • Inizialmente sviluppato da Facebook.

Page 17: Introduzione ai Big Data e alla scienza dei dati - Big Data

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’

Page 18: Introduzione ai Big Data e alla scienza dei dati - Big Data

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.

Page 19: Introduzione ai Big Data e alla scienza dei dati - Big Data

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;

Page 20: Introduzione ai Big Data e alla scienza dei dati - Big Data

HIVEQL VS PIG LATIN

HiveQL Pig LatinTecnologia Hive Pig

Introdotto da Facebook YahooTipologia di linguaggio Dichiarativo Procedurale

Simile a SQL C, Java, Python, R

Page 21: Introduzione ai Big Data e alla scienza dei dati - Big Data

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

Page 22: Introduzione ai Big Data e alla scienza dei dati - Big Data

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.

Page 23: Introduzione ai Big Data e alla scienza dei dati - Big Data

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.

Page 24: Introduzione ai Big Data e alla scienza dei dati - Big Data

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

Page 25: Introduzione ai Big Data e alla scienza dei dati - Big Data

AWS• Tecnologie

• EC2: calcolo on demand • S3: storage on demand • Elastic MapReduce: Hadoop on demand (anche con Pig e

Hive) • Database relazionali e NoSQL

Page 26: Introduzione ai Big Data e alla scienza dei dati - Big Data

AWS

Page 27: Introduzione ai Big Data e alla scienza dei dati - Big Data

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.

Page 28: Introduzione ai Big Data e alla scienza dei dati - Big Data

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

Page 29: Introduzione ai Big Data e alla scienza dei dati - Big Data

LIBRO CONSIGLIATO

Page 30: Introduzione ai Big Data e alla scienza dei dati - Big Data

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

Page 31: Introduzione ai Big Data e alla scienza dei dati - Big Data

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?


Recommended