SlideShare a Scribd company logo
1 of 21
Big Data
Introduzione all’analisi di grandi quantità di dati con tecnologie di tipo HADOOP
Cosa è Big Data
 La gestione dei dati può comportare query su dati strutturati all’interno di database di
grandi dimensioni, oppure ricerche su file system distribuiti od infine operazioni di
manipolazione, visualizzazione, trasferimento e cancellazione di file e directory
distribuite su più server.
 L’analisi computazionale comporta lo sviluppo di metodi ed algoritmi scalabili per la
gestione e l'analisi di Big Data. Per scalabilità, intendiamo metodi che rimangono
veloci, flessibili ed efficienti anche quando la dimensione dell'insieme di dati cresce.
 L'analisi dei dati e la modellazione può comportare la riduzione dimensionale, la
suddivisione (clustering), la classificazione (ranking), la previsione e la possibilità di
future estrazioni.
 La Visualizzazione può coinvolgere modalità grafiche che forniscono informazioni su
grandi quantità di dati, ricchi di informazioni visive con riepiloghi dei risultati, dove
l’analisi visuale talvolta è il momento stesso in cui i dati vengono valutati.
Le 3V – varietà, velocità, volume
 Varietà: i dati possono essere strutturati e non strutturati, provenienti da sorgenti
interne, esterna o pubbliche
 Velocità: di generazione, di acquisizione, di processamento e gestione
 Volume: la quantità dei dati prodotti
 Da valutare anche
 Complessità: intesa come differenti formati, diverse strutture e diverse sorgenti di
provenienza.
 Valore: costo del dato, sia la produzione, l’immagazzinamento e talvolta l’acquisto.
 La veridicità del dato: è importante chi certifica il dato.
 Il BIG DATA di oggi sarà il LITTLE DATA di domani (tutto dipende dalla capacità
computazionale a disposizione)
Big Data Analytics
 Analitico : è la scoperta di modelli significativi all’interno dei dati (meangiful
pattern)
 Le analisi analitiche possono portare a riconoscere modelli di dati che possono
essere utili per predire eventi futuri oppure spiegare eventi passati
 ad esempio l’incrocio di banche dati fiscali è servito a rintracciare comportamenti
fraudolenti
 Invece l’analisi dei comportamenti utente su un sevizio di WEB-TV o IP-TV, serve
a predire le loro abitudine televisive
 Per approfondire:
http://stattrak.amstat.org/2014/07/01/bigdatasets/
La ruota del BIG DATA
Come affrontare BIG DATA
 L’esplosione della produzione ed immagazzinamento di dati che si è avuto negli
ultimi venti anni ha portato allo sviluppo di molteplici metodologie, algoritmi e
tecnologie per affrontare queste problematiche
 Big data analytics: l’utilizzo di algoritmi matematici, statistiche e machine learning
(apprendimento evolutivo di sistemi computazionali) per analizzare dati prodotti
sempre con maggiore velocità, varietà, volume e complessità
 Big models: sviluppo di nuove teorie e metodi che si basano su modelli finalizzati
all’utilizzo ed interpretazione del dato
 New Insights: provvedere a ridurre le differenze tra teoria e pratica fornendo
soluzioni che offrono un modello collaborativo tra organizzazioni interconnesse e
multidisciplinari
GESTIRE BIG DATA CON HADOOP
 SQL, HADOOP e MAP REDUCE sono tre strumenti comuni per gestire grandi
quantità di dati
 HADOOP si compone di diversi tool
 HDFS (HADDOP DISTRIBUTED FILE SYSTEM) è un file system distribuito su cluster
o su cloud
 HADOOP MAP REDUCE è un pattern per analizzare dati in ambienti cloud
 APACHE PIG è un framework costruito in ambiente HADOOP (per scherzare si
può dire che come un maiale mangia dati e produce report e non si butta via
niente)
 APACHE SPARK è un motore di ricerca per processare dati distribuiti in larga scala
Apache Hadoop
 Apache Hadoop è un framework che consente l'elaborazione distribuita di grandi
insiemi di dati attraverso cluster di servers, oppure sui servizi di cloud computing,
come Amazon Elastic Compute Cloud (EC2). Questo è possibile attraverso
l’utilizzo di modelli di programmazione semplici. È stato progettato per scalare
da singolo server a migliaia di macchine distribuite, ognuna delle quali offre
capacità di calcolo e di immagazzinamento. Rileva e gestisce gli errori a livello di
strato applicativo.
 I suoi principali componenti sono
 HDFS
 MAP REDUCE
Confronto MAP REDUCE - SQL
 HADOOP può gestire sia dati strutturati che non strutturati
 Se lavori con dati strutturati le due tecnologie sono complementari, in quanto
SQL si può utilizzare su HADOOP come motore di ricerca
 Mentre HADOOP lavora su cluster esistenti (ad esempio raccogliendo file di log
da batterie di server) per avere un RDBMS relazionale devi comprare un
Hardware apposito
 Hadoop utilizza il principio key-value invece della relazione fra tabelle
 SQL è un linguaggio dichiarativo di alto livello mentre MAP REDUCE si basa su
linguaggi funzionali
Come funziona HDFS
 Blocchi: un file in ingresso viene suddiviso in blocchi e salvato su più nodi cluster
 Ogni blocco è scritto una solo volta e può essere processato attraverso MAP
REDUCE framework
 I dati sono automaticamente replicati in caso di problemi
 I nodi si dividono in nodi nome e nodi data
 Sui nodi nome è annotato a che file appartiene e dove è salvato il blocco
 Sui nodi data sono salvati i blocchi
L’ecosistema del BIG DATA
 I BIG DATA presentano diverse framework, librerie, strumenti e piattaforme con cui
poter operare
 Frameworks: Hadoop Ecosystem, Apache Spark, Apache Storm, Apache Pig,
Facebook Presto
 Patterns: Map Reduce, Actor Model, Data Pipeline
 Piattoforme: Cloudera, Pivotal, Amazon Redshift, Google Compute Engine,
Elastichsearch
 Tra questi sottolineiamo
 Apache Mahout: una libreria per machine learning e data mining
 Apache Pig: un linguaggio di alto livello ed un framework per l’analisi di flussi dati e
calcolo parallelo
 Apache Spark: un motore di ricerca veloce per Hadoop. Spark fornisce un semplice
modello di programmazione che supporta diverse tipologie di applicazioni tra cui ETL
(Extract, Transform, Load), machine learning, stream processing e calcolo di grafici.
DATA SCHEMA
 I dati possono essere acquisiti in vari formati strutturati,
non strutturati, testo, binari, ….
 Hadoop utilizza una nuova gestione del dato chiamato
schema: lo schema è un insieme di istruzioni o un
template che a partire dal dato immagazzinato tira fuori
un risultato da mostrare all’utente finale o da sottoporre
a nuove trasformazioni
 Rispetto all’immagazzinamento relazionale il dato viene
salvato una sola volta e quello che cambia è la
visualizzazione che ne viene prodotta verso l’utente
finale
 Schema possono utilizzare molti modelli computazionali
come ad esempio le reti neurali, la logica fuzzy, ..
Il modello MAP REDUCE (map reduce
pattern)
 Si compone di tre fasi
 MAPPA (Map)
 Rimescola (Shuffle)
 Riduci (Reduce)
 Nel video della pagina seguente questi fasi sono presentate per un algoritmo che
calcolo quante volte un anno è presente in un file immagazzinato in HDFS. Il file
è diviso in più blocchi, ognuno salvato su un differente nodo.
 Si vuole sapere quante volte ad esempio il 2002 è citato
Video Map Reduce
https://www.youtube.com/watch?v=FHVuRxJpiwI
Apache PIG
 Apache PIG si basa su HDFS e Map Reduce
 Può processare dati in ogni formato tabellare, tab separetd, formati nativi. Possono
essere aggiunte primitive per il processamento dei dati
 Operazioni sui dati: relazionali, cartelle nidificate, semistrutturati, destrutturati
 Può girare su macchina singola, in pseudo-cluster, cluster o in ambiente cloud
 Fornisce un motore di ricerca per effettuare analisi su flussi di dati con le modalità del
calcolo parallelo
 Include un linguaggio Latin Pig per eseguire operazioni su i dati
 Pig latin include operazioni con Keyword comuni come FILTER, JOIN SORT, GROUP,
FOREACH, LOAD, STORE, … per facilitare l’apprendimento per chi viene da linguaggi
tipo script o SQL
 È un linguaggio molto potente che riduce i tempi di sviluppo ed esprime complesse
trasformazioni di dati in poche righe di codice
PIG LATIN
 Pig LATIN è un linguaggio che permette di descrivere come il dato proveniente
da uno o più input deve essere processato, immagazzinato e veicolato verso uno
o più output.
 PIG LATIN è un linguaggio a grafo aciclico diretto (DAG), in altre parole non ha
cicli come l’SQL. Quindi non ci sono istruziono tipo: if, loop, for
 PIG LATIN permette di addizionare User Defined Functions (UDF) da altri
linguaggi, questo permette di avere librerie con funzioni per i calcoli statistici e
data mining
 Un classico script in PIG Latin si compone di
 Un’operazione di LOAD che carica I dati da uno o più sorgenti
 Una serie di trasformazioni sul dato (FILTER, GROUP, FOREACH,..)
 Un’operazione di STORE che immagazina il risultato finale
 Un’operazione di DUMP che mostra il risultato verso l’utente finale
Apache SPARK
 Spark è un framework open-source. È scritto in Scala che è un linguaggio
funzionale implementato per girare su una Java Virtual machine
 Evita colli di bottiglia in quanto il dato è distribuito quando si immagazzina
 È simile ad Hadoop Map Reducer in quanto alloca gli ordini di processamento sui
nodi dove il dato è immagazzinato
 Può immagazzinare i dati nella memoria dei nodi dato
 È molto versatile in quanto può utilizzare una ricca collezione di API fornite
tramite JAVA, SCALA, PYTHON. Dispone anche di shell, scritte in PYTHON e
SCALA
 Occorrono meno righe di codice se confrontato con Hadoop MR
 In SPARK si possono utilizzare in unico ambiente: SQL, primitive per il flusso dati
ed algoritmi analitici complessi
Set di dati distribuiti resilienti (Resilient
Distributed Datasets - RDD)
 In ingegneria, la resilienza è la capacità di un materiale di assorbire energia di
deformazione elastica
 Ogni driver Spark ha la possibilità di lanciare operazioni in parallelo su un cluster
 Il driver è il programma che contiene la funzione main(). Definisce anche quali
sono gli insiemi dei dati dove eseguire le operazioni
 Per eseguire le operazioni Spark gestisce un insieme di nodi (esecutori), così le
operazioni verranno eseguite in parallelo su di essi
 Il programma Driver per accedere a Spark usa un oggetto SparkContext, che
agisce come connettore verso il cloud. Una volta che viene inizializzato può
iniziare a costruire un RDD (Resilient Distributed Datasets)
RDD in Spark
 Un RDD è una collezione di elementi distribuita
 Spark crea un RDD, oppure lo trasforma, oppure esegue dei calcoli su un RDD
per avere un risultato
 Gli RDD sono
 Collezioni di oggetti sparsi all’interno di un cluster o di un cloud
 Collezioni derivate da trasformazioni ( ad esempio la mappature o la lista estratta
da oggetti immagazzinati in precedenza)
 Spark provvede alla capacità di controllare la persistenza di questi oggetti (ad
esempio alcuni possono essere in RAM)
 Se alcuni RDD vengono fortuitamente distrutti, Spark provvede a ricostruirli
Operazioni SPARK su RDD
 Le operazioni che si possono fare in Spark
sugli RDD sono di due tipi
 Trasformazioni: da un RDD ritorna un altro
RDD attraverso operazioni tipo map, filter,
join
 Azioni: operazioni che ritornano un
risultato o lo immagazzinano come ad
esempio count, reduce, collect.
FINE PRESENTAZIONE
Grazie per la cortese attenzione
Fonti. BIG DATA from data to decisions. Queensland University of Technology

More Related Content

What's hot

Steganography Project
Steganography Project Steganography Project
Steganography Project
Jitu Choudhary
 
Big Data Analytics | What Is Big Data Analytics? | Big Data Analytics For Beg...
Big Data Analytics | What Is Big Data Analytics? | Big Data Analytics For Beg...Big Data Analytics | What Is Big Data Analytics? | Big Data Analytics For Beg...
Big Data Analytics | What Is Big Data Analytics? | Big Data Analytics For Beg...
Simplilearn
 
Frequency Domain Image Enhancement Techniques
Frequency Domain Image Enhancement TechniquesFrequency Domain Image Enhancement Techniques
Frequency Domain Image Enhancement Techniques
Diwaker Pant
 
Data mining PPT
Data mining PPTData mining PPT
Data mining PPT
Kapil Rode
 

What's hot (20)

Top 5 Considerations for a Big Data Solution
Top 5 Considerations for a Big Data SolutionTop 5 Considerations for a Big Data Solution
Top 5 Considerations for a Big Data Solution
 
Analysing of big data using map reduce
Analysing of big data using map reduceAnalysing of big data using map reduce
Analysing of big data using map reduce
 
Steganography Project
Steganography Project Steganography Project
Steganography Project
 
Data recovery report
Data recovery reportData recovery report
Data recovery report
 
PROJECT FINAL PPT
PROJECT FINAL PPTPROJECT FINAL PPT
PROJECT FINAL PPT
 
Big Data Analytics | What Is Big Data Analytics? | Big Data Analytics For Beg...
Big Data Analytics | What Is Big Data Analytics? | Big Data Analytics For Beg...Big Data Analytics | What Is Big Data Analytics? | Big Data Analytics For Beg...
Big Data Analytics | What Is Big Data Analytics? | Big Data Analytics For Beg...
 
Introduction to Transformer Model
Introduction to Transformer ModelIntroduction to Transformer Model
Introduction to Transformer Model
 
Image Restoration And Reconstruction
Image Restoration And ReconstructionImage Restoration And Reconstruction
Image Restoration And Reconstruction
 
Big data-ppt-
Big data-ppt-Big data-ppt-
Big data-ppt-
 
Big data lecture notes
Big data lecture notesBig data lecture notes
Big data lecture notes
 
Data Augmentation
Data AugmentationData Augmentation
Data Augmentation
 
Diabetes prediction with r(using knn)
Diabetes prediction with r(using knn)Diabetes prediction with r(using knn)
Diabetes prediction with r(using knn)
 
Machine Learning - Object Detection and Classification
Machine Learning - Object Detection and ClassificationMachine Learning - Object Detection and Classification
Machine Learning - Object Detection and Classification
 
Machine Learning in Big Data
Machine Learning in Big DataMachine Learning in Big Data
Machine Learning in Big Data
 
Audio Steganography synopsis
Audio Steganography synopsisAudio Steganography synopsis
Audio Steganography synopsis
 
The Advantages and Disadvantages of Big Data
The Advantages and Disadvantages of Big DataThe Advantages and Disadvantages of Big Data
The Advantages and Disadvantages of Big Data
 
CRISP-DM: a data science project methodology
CRISP-DM: a data science project methodologyCRISP-DM: a data science project methodology
CRISP-DM: a data science project methodology
 
Over fitting underfitting
Over fitting underfittingOver fitting underfitting
Over fitting underfitting
 
Frequency Domain Image Enhancement Techniques
Frequency Domain Image Enhancement TechniquesFrequency Domain Image Enhancement Techniques
Frequency Domain Image Enhancement Techniques
 
Data mining PPT
Data mining PPTData mining PPT
Data mining PPT
 

Similar to Appunti di big data

Trovare ciò che serve nella confusione: comprendere i Big Data con l'analisi AWS
Trovare ciò che serve nella confusione: comprendere i Big Data con l'analisi AWSTrovare ciò che serve nella confusione: comprendere i Big Data con l'analisi AWS
Trovare ciò che serve nella confusione: comprendere i Big Data con l'analisi AWS
Amazon Web Services
 
JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)
jampslide
 

Similar to Appunti di big data (20)

Big data stack tecnologico
Big data stack tecnologicoBig data stack tecnologico
Big data stack tecnologico
 
Big data - stack tecnologico
Big data -  stack tecnologicoBig data -  stack tecnologico
Big data - stack tecnologico
 
Business Intelligence & Analytics
Business Intelligence & AnalyticsBusiness Intelligence & Analytics
Business Intelligence & Analytics
 
Presentazione bd2
Presentazione bd2Presentazione bd2
Presentazione bd2
 
MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009
 
Introduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big DataIntroduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big Data
 
Hadoop in action!
Hadoop in action!Hadoop in action!
Hadoop in action!
 
Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...
Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...
Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...
 
Redis - Non solo cache
Redis - Non solo cacheRedis - Non solo cache
Redis - Non solo cache
 
Big Data e la forza degli eventi - Intervento di Melen
Big Data e la forza degli eventi - Intervento di MelenBig Data e la forza degli eventi - Intervento di Melen
Big Data e la forza degli eventi - Intervento di Melen
 
Erlug
ErlugErlug
Erlug
 
Database Data Aggregator
Database Data AggregatorDatabase Data Aggregator
Database Data Aggregator
 
Trovare ciò che serve nella confusione: comprendere i Big Data con l'analisi AWS
Trovare ciò che serve nella confusione: comprendere i Big Data con l'analisi AWSTrovare ciò che serve nella confusione: comprendere i Big Data con l'analisi AWS
Trovare ciò che serve nella confusione: comprendere i Big Data con l'analisi AWS
 
Db2 11.1: l'evoluzione del Database secondo IBM
Db2 11.1: l'evoluzione del Database secondo IBMDb2 11.1: l'evoluzione del Database secondo IBM
Db2 11.1: l'evoluzione del Database secondo IBM
 
JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)
 
Hadoop [software architecture recovery]
Hadoop [software architecture recovery]Hadoop [software architecture recovery]
Hadoop [software architecture recovery]
 
Interfacce applicative al Sistema di Catalogazione del progetto MESSIAH
Interfacce applicative  al Sistema di Catalogazione del progetto MESSIAHInterfacce applicative  al Sistema di Catalogazione del progetto MESSIAH
Interfacce applicative al Sistema di Catalogazione del progetto MESSIAH
 
Hadoop SAR
Hadoop SARHadoop SAR
Hadoop SAR
 
MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009
 
MongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework MeetingMongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework Meeting
 

Appunti di big data

  • 1. Big Data Introduzione all’analisi di grandi quantità di dati con tecnologie di tipo HADOOP
  • 2. Cosa è Big Data  La gestione dei dati può comportare query su dati strutturati all’interno di database di grandi dimensioni, oppure ricerche su file system distribuiti od infine operazioni di manipolazione, visualizzazione, trasferimento e cancellazione di file e directory distribuite su più server.  L’analisi computazionale comporta lo sviluppo di metodi ed algoritmi scalabili per la gestione e l'analisi di Big Data. Per scalabilità, intendiamo metodi che rimangono veloci, flessibili ed efficienti anche quando la dimensione dell'insieme di dati cresce.  L'analisi dei dati e la modellazione può comportare la riduzione dimensionale, la suddivisione (clustering), la classificazione (ranking), la previsione e la possibilità di future estrazioni.  La Visualizzazione può coinvolgere modalità grafiche che forniscono informazioni su grandi quantità di dati, ricchi di informazioni visive con riepiloghi dei risultati, dove l’analisi visuale talvolta è il momento stesso in cui i dati vengono valutati.
  • 3. Le 3V – varietà, velocità, volume  Varietà: i dati possono essere strutturati e non strutturati, provenienti da sorgenti interne, esterna o pubbliche  Velocità: di generazione, di acquisizione, di processamento e gestione  Volume: la quantità dei dati prodotti  Da valutare anche  Complessità: intesa come differenti formati, diverse strutture e diverse sorgenti di provenienza.  Valore: costo del dato, sia la produzione, l’immagazzinamento e talvolta l’acquisto.  La veridicità del dato: è importante chi certifica il dato.  Il BIG DATA di oggi sarà il LITTLE DATA di domani (tutto dipende dalla capacità computazionale a disposizione)
  • 4. Big Data Analytics  Analitico : è la scoperta di modelli significativi all’interno dei dati (meangiful pattern)  Le analisi analitiche possono portare a riconoscere modelli di dati che possono essere utili per predire eventi futuri oppure spiegare eventi passati  ad esempio l’incrocio di banche dati fiscali è servito a rintracciare comportamenti fraudolenti  Invece l’analisi dei comportamenti utente su un sevizio di WEB-TV o IP-TV, serve a predire le loro abitudine televisive  Per approfondire: http://stattrak.amstat.org/2014/07/01/bigdatasets/
  • 5. La ruota del BIG DATA
  • 6. Come affrontare BIG DATA  L’esplosione della produzione ed immagazzinamento di dati che si è avuto negli ultimi venti anni ha portato allo sviluppo di molteplici metodologie, algoritmi e tecnologie per affrontare queste problematiche  Big data analytics: l’utilizzo di algoritmi matematici, statistiche e machine learning (apprendimento evolutivo di sistemi computazionali) per analizzare dati prodotti sempre con maggiore velocità, varietà, volume e complessità  Big models: sviluppo di nuove teorie e metodi che si basano su modelli finalizzati all’utilizzo ed interpretazione del dato  New Insights: provvedere a ridurre le differenze tra teoria e pratica fornendo soluzioni che offrono un modello collaborativo tra organizzazioni interconnesse e multidisciplinari
  • 7. GESTIRE BIG DATA CON HADOOP  SQL, HADOOP e MAP REDUCE sono tre strumenti comuni per gestire grandi quantità di dati  HADOOP si compone di diversi tool  HDFS (HADDOP DISTRIBUTED FILE SYSTEM) è un file system distribuito su cluster o su cloud  HADOOP MAP REDUCE è un pattern per analizzare dati in ambienti cloud  APACHE PIG è un framework costruito in ambiente HADOOP (per scherzare si può dire che come un maiale mangia dati e produce report e non si butta via niente)  APACHE SPARK è un motore di ricerca per processare dati distribuiti in larga scala
  • 8. Apache Hadoop  Apache Hadoop è un framework che consente l'elaborazione distribuita di grandi insiemi di dati attraverso cluster di servers, oppure sui servizi di cloud computing, come Amazon Elastic Compute Cloud (EC2). Questo è possibile attraverso l’utilizzo di modelli di programmazione semplici. È stato progettato per scalare da singolo server a migliaia di macchine distribuite, ognuna delle quali offre capacità di calcolo e di immagazzinamento. Rileva e gestisce gli errori a livello di strato applicativo.  I suoi principali componenti sono  HDFS  MAP REDUCE
  • 9. Confronto MAP REDUCE - SQL  HADOOP può gestire sia dati strutturati che non strutturati  Se lavori con dati strutturati le due tecnologie sono complementari, in quanto SQL si può utilizzare su HADOOP come motore di ricerca  Mentre HADOOP lavora su cluster esistenti (ad esempio raccogliendo file di log da batterie di server) per avere un RDBMS relazionale devi comprare un Hardware apposito  Hadoop utilizza il principio key-value invece della relazione fra tabelle  SQL è un linguaggio dichiarativo di alto livello mentre MAP REDUCE si basa su linguaggi funzionali
  • 10. Come funziona HDFS  Blocchi: un file in ingresso viene suddiviso in blocchi e salvato su più nodi cluster  Ogni blocco è scritto una solo volta e può essere processato attraverso MAP REDUCE framework  I dati sono automaticamente replicati in caso di problemi  I nodi si dividono in nodi nome e nodi data  Sui nodi nome è annotato a che file appartiene e dove è salvato il blocco  Sui nodi data sono salvati i blocchi
  • 11. L’ecosistema del BIG DATA  I BIG DATA presentano diverse framework, librerie, strumenti e piattaforme con cui poter operare  Frameworks: Hadoop Ecosystem, Apache Spark, Apache Storm, Apache Pig, Facebook Presto  Patterns: Map Reduce, Actor Model, Data Pipeline  Piattoforme: Cloudera, Pivotal, Amazon Redshift, Google Compute Engine, Elastichsearch  Tra questi sottolineiamo  Apache Mahout: una libreria per machine learning e data mining  Apache Pig: un linguaggio di alto livello ed un framework per l’analisi di flussi dati e calcolo parallelo  Apache Spark: un motore di ricerca veloce per Hadoop. Spark fornisce un semplice modello di programmazione che supporta diverse tipologie di applicazioni tra cui ETL (Extract, Transform, Load), machine learning, stream processing e calcolo di grafici.
  • 12. DATA SCHEMA  I dati possono essere acquisiti in vari formati strutturati, non strutturati, testo, binari, ….  Hadoop utilizza una nuova gestione del dato chiamato schema: lo schema è un insieme di istruzioni o un template che a partire dal dato immagazzinato tira fuori un risultato da mostrare all’utente finale o da sottoporre a nuove trasformazioni  Rispetto all’immagazzinamento relazionale il dato viene salvato una sola volta e quello che cambia è la visualizzazione che ne viene prodotta verso l’utente finale  Schema possono utilizzare molti modelli computazionali come ad esempio le reti neurali, la logica fuzzy, ..
  • 13. Il modello MAP REDUCE (map reduce pattern)  Si compone di tre fasi  MAPPA (Map)  Rimescola (Shuffle)  Riduci (Reduce)  Nel video della pagina seguente questi fasi sono presentate per un algoritmo che calcolo quante volte un anno è presente in un file immagazzinato in HDFS. Il file è diviso in più blocchi, ognuno salvato su un differente nodo.  Si vuole sapere quante volte ad esempio il 2002 è citato
  • 15. Apache PIG  Apache PIG si basa su HDFS e Map Reduce  Può processare dati in ogni formato tabellare, tab separetd, formati nativi. Possono essere aggiunte primitive per il processamento dei dati  Operazioni sui dati: relazionali, cartelle nidificate, semistrutturati, destrutturati  Può girare su macchina singola, in pseudo-cluster, cluster o in ambiente cloud  Fornisce un motore di ricerca per effettuare analisi su flussi di dati con le modalità del calcolo parallelo  Include un linguaggio Latin Pig per eseguire operazioni su i dati  Pig latin include operazioni con Keyword comuni come FILTER, JOIN SORT, GROUP, FOREACH, LOAD, STORE, … per facilitare l’apprendimento per chi viene da linguaggi tipo script o SQL  È un linguaggio molto potente che riduce i tempi di sviluppo ed esprime complesse trasformazioni di dati in poche righe di codice
  • 16. PIG LATIN  Pig LATIN è un linguaggio che permette di descrivere come il dato proveniente da uno o più input deve essere processato, immagazzinato e veicolato verso uno o più output.  PIG LATIN è un linguaggio a grafo aciclico diretto (DAG), in altre parole non ha cicli come l’SQL. Quindi non ci sono istruziono tipo: if, loop, for  PIG LATIN permette di addizionare User Defined Functions (UDF) da altri linguaggi, questo permette di avere librerie con funzioni per i calcoli statistici e data mining  Un classico script in PIG Latin si compone di  Un’operazione di LOAD che carica I dati da uno o più sorgenti  Una serie di trasformazioni sul dato (FILTER, GROUP, FOREACH,..)  Un’operazione di STORE che immagazina il risultato finale  Un’operazione di DUMP che mostra il risultato verso l’utente finale
  • 17. Apache SPARK  Spark è un framework open-source. È scritto in Scala che è un linguaggio funzionale implementato per girare su una Java Virtual machine  Evita colli di bottiglia in quanto il dato è distribuito quando si immagazzina  È simile ad Hadoop Map Reducer in quanto alloca gli ordini di processamento sui nodi dove il dato è immagazzinato  Può immagazzinare i dati nella memoria dei nodi dato  È molto versatile in quanto può utilizzare una ricca collezione di API fornite tramite JAVA, SCALA, PYTHON. Dispone anche di shell, scritte in PYTHON e SCALA  Occorrono meno righe di codice se confrontato con Hadoop MR  In SPARK si possono utilizzare in unico ambiente: SQL, primitive per il flusso dati ed algoritmi analitici complessi
  • 18. Set di dati distribuiti resilienti (Resilient Distributed Datasets - RDD)  In ingegneria, la resilienza è la capacità di un materiale di assorbire energia di deformazione elastica  Ogni driver Spark ha la possibilità di lanciare operazioni in parallelo su un cluster  Il driver è il programma che contiene la funzione main(). Definisce anche quali sono gli insiemi dei dati dove eseguire le operazioni  Per eseguire le operazioni Spark gestisce un insieme di nodi (esecutori), così le operazioni verranno eseguite in parallelo su di essi  Il programma Driver per accedere a Spark usa un oggetto SparkContext, che agisce come connettore verso il cloud. Una volta che viene inizializzato può iniziare a costruire un RDD (Resilient Distributed Datasets)
  • 19. RDD in Spark  Un RDD è una collezione di elementi distribuita  Spark crea un RDD, oppure lo trasforma, oppure esegue dei calcoli su un RDD per avere un risultato  Gli RDD sono  Collezioni di oggetti sparsi all’interno di un cluster o di un cloud  Collezioni derivate da trasformazioni ( ad esempio la mappature o la lista estratta da oggetti immagazzinati in precedenza)  Spark provvede alla capacità di controllare la persistenza di questi oggetti (ad esempio alcuni possono essere in RAM)  Se alcuni RDD vengono fortuitamente distrutti, Spark provvede a ricostruirli
  • 20. Operazioni SPARK su RDD  Le operazioni che si possono fare in Spark sugli RDD sono di due tipi  Trasformazioni: da un RDD ritorna un altro RDD attraverso operazioni tipo map, filter, join  Azioni: operazioni che ritornano un risultato o lo immagazzinano come ad esempio count, reduce, collect.
  • 21. FINE PRESENTAZIONE Grazie per la cortese attenzione Fonti. BIG DATA from data to decisions. Queensland University of Technology