big data: tecnologie, metodologie e applicazioni per l ... · big data introduzione mapreduce...

56
Big Data Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Ministero Dello Sviluppo Economico Istituto Superiore delle Comunicazioni e delle Tecnologie dell’Informazione Seminario ISCOM Simone Angelini Fondazione Ugo Bordoni Francesca Capri Universit` a di Roma Tor Vergata 6 marzo 2017 Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 1 / 41

Upload: others

Post on 28-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

Big Data: tecnologie, metodologie e applicazioniper l’analisi dei dati massivi

Ministero Dello Sviluppo EconomicoIstituto Superiore delle Comunicazioni e delle Tecnologie dell’Informazione

Seminario ISCOM

Simone AngeliniFondazione Ugo Bordoni

Francesca CapriUniversita di Roma Tor Vergata

6 marzo 2017

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 1 / 41

Page 2: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

Table of Contents

1 Big DataIntroduzioneMapReduceApache HadoopApache Spark

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 2 / 41

Page 3: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Introduzione ai Big Data (1/2)

Definizione Informale

Per Big Data si intende un’elevatissima quantita di dati, spesso nonstrutturati, provenienti da fonti differenti e rilasciati in formati diversi.

Ogni giorno, nel 2016, sono stati generati ben 2.5 exabyte di datiSecondo le stime il 90% della quantita totale e stata prodotta negliultimi due anni

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 3 / 41

Page 4: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Introduzione ai Big Data (1/2)

Definizione Informale

Per Big Data si intende un’elevatissima quantita di dati, spesso nonstrutturati, provenienti da fonti differenti e rilasciati in formati diversi.

Ogni giorno, nel 2016, sono stati generati ben 2.5 exabyte di datiSecondo le stime il 90% della quantita totale e stata prodotta negliultimi due anni

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 3 / 41

Page 5: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Introduzione ai Big Data (2/2)

Definizione Formale

Una definizione piu vincolante e stata fornita nel 2001 e rivista dalgruppo di ricerca di IBM, risultando ad oggi la piu accettata.I Big Data sono definiti da ”5 V”:

Volume: Riferito alla dimensione dei dati

Varieta: Visto che i dati sono prodotti da fonti differenti e informati differenti

Velocita: Riferita alla velocita con cui vengono generati nuovi dati esvolte le analisi

Veracita: I dati vengono considerati incerti e necessitano di unafase di validazione prima e durante l’uso

Valore: Prodotto a seguito di analisi

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 4 / 41

Page 6: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Big Data: Nuovo approccio

Problema

Come gestire una mole cosı grande di dati, di diversi formati, con sistemitradizionali, come DBMS relazionali in esecuzione su una singolamacchina?

Soluzione

Google nel 2004 ha introdotto un nuovo paradigma di programmazioneconosciuto come MapReduce

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 5 / 41

Page 7: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Big Data: Nuovo approccio

Problema

Come gestire una mole cosı grande di dati, di diversi formati, con sistemitradizionali, come DBMS relazionali in esecuzione su una singolamacchina?

Soluzione

Google nel 2004 ha introdotto un nuovo paradigma di programmazioneconosciuto come MapReduce

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 5 / 41

Page 8: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

MapReduce: Introduzione

Cos’e MapReduce?

Paradigma di programmazione per il processamento e la generazione didati massivi, attraverso un algoritmo parallelo e distribuito su di uncluster

MapReduce lavora secondo il principio ”divide et impera”

Il modello MapReduce e ispirato alle funzioni map e reduce dellaprogrammazione funzionale

Gli utenti definiscono una funzione map che processa una coppiakey/value e genera un insieme intermedio di coppie key/value, poispecificano una funzione reduce che fa il merge tra tutti i valoriintermedi associati alla stessa chiave intermedia

MapReduce permette al programmatore di utilizzare facilmente lerisorse di un sistema distribuito e parallelo

MapReduce e il cuore del framework open-source Apache Hadoop

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 6 / 41

Page 9: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

MapReduce: Introduzione

Cos’e MapReduce?

Paradigma di programmazione per il processamento e la generazione didati massivi, attraverso un algoritmo parallelo e distribuito su di uncluster

MapReduce lavora secondo il principio ”divide et impera”

Il modello MapReduce e ispirato alle funzioni map e reduce dellaprogrammazione funzionale

Gli utenti definiscono una funzione map che processa una coppiakey/value e genera un insieme intermedio di coppie key/value, poispecificano una funzione reduce che fa il merge tra tutti i valoriintermedi associati alla stessa chiave intermedia

MapReduce permette al programmatore di utilizzare facilmente lerisorse di un sistema distribuito e parallelo

MapReduce e il cuore del framework open-source Apache Hadoop

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 6 / 41

Page 10: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

MapReduce: Introduzione

Cos’e MapReduce?

Paradigma di programmazione per il processamento e la generazione didati massivi, attraverso un algoritmo parallelo e distribuito su di uncluster

MapReduce lavora secondo il principio ”divide et impera”

Il modello MapReduce e ispirato alle funzioni map e reduce dellaprogrammazione funzionale

Gli utenti definiscono una funzione map che processa una coppiakey/value e genera un insieme intermedio di coppie key/value, poispecificano una funzione reduce che fa il merge tra tutti i valoriintermedi associati alla stessa chiave intermedia

MapReduce permette al programmatore di utilizzare facilmente lerisorse di un sistema distribuito e parallelo

MapReduce e il cuore del framework open-source Apache Hadoop

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 6 / 41

Page 11: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

MapReduce: Introduzione

Cos’e MapReduce?

Paradigma di programmazione per il processamento e la generazione didati massivi, attraverso un algoritmo parallelo e distribuito su di uncluster

MapReduce lavora secondo il principio ”divide et impera”

Il modello MapReduce e ispirato alle funzioni map e reduce dellaprogrammazione funzionale

Gli utenti definiscono una funzione map che processa una coppiakey/value e genera un insieme intermedio di coppie key/value, poispecificano una funzione reduce che fa il merge tra tutti i valoriintermedi associati alla stessa chiave intermedia

MapReduce permette al programmatore di utilizzare facilmente lerisorse di un sistema distribuito e parallelo

MapReduce e il cuore del framework open-source Apache Hadoop

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 6 / 41

Page 12: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

MapReduce: Introduzione

Cos’e MapReduce?

Paradigma di programmazione per il processamento e la generazione didati massivi, attraverso un algoritmo parallelo e distribuito su di uncluster

MapReduce lavora secondo il principio ”divide et impera”

Il modello MapReduce e ispirato alle funzioni map e reduce dellaprogrammazione funzionale

Gli utenti definiscono una funzione map che processa una coppiakey/value e genera un insieme intermedio di coppie key/value, poispecificano una funzione reduce che fa il merge tra tutti i valoriintermedi associati alla stessa chiave intermedia

MapReduce permette al programmatore di utilizzare facilmente lerisorse di un sistema distribuito e parallelo

MapReduce e il cuore del framework open-source Apache Hadoop

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 6 / 41

Page 13: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

MapReduce: Introduzione

Cos’e MapReduce?

Paradigma di programmazione per il processamento e la generazione didati massivi, attraverso un algoritmo parallelo e distribuito su di uncluster

MapReduce lavora secondo il principio ”divide et impera”

Il modello MapReduce e ispirato alle funzioni map e reduce dellaprogrammazione funzionale

Gli utenti definiscono una funzione map che processa una coppiakey/value e genera un insieme intermedio di coppie key/value, poispecificano una funzione reduce che fa il merge tra tutti i valoriintermedi associati alla stessa chiave intermedia

MapReduce permette al programmatore di utilizzare facilmente lerisorse di un sistema distribuito e parallelo

MapReduce e il cuore del framework open-source Apache Hadoop

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 6 / 41

Page 14: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Esecuzione di un job MapReduce: Overview

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 7 / 41

Page 15: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Esecuzione di un job MapReduce: Fasi (1/2)

Le fasi per la computazione di un job MapReduce sono principalmente 4:

1 Split dei dati in input: i dati in input vengono divisi in n partizioni,di una certa dimensione, ogni partizione viene assegnata ad unmapper differente

2 Fase di Map: in parallelo, ogni mapper prende in input una coppiachiave/valore(key/value), rappresentata da un record logicodell’input.In output, restituisce zero o piu coppie chiave/valore per quelladeterminata coppia chiave/valore in input.Ossia:

map(chiave1, valore1) → list(chiave2, valore2)

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 8 / 41

Page 16: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Esecuzione di un job MapReduce: Fasi (1/2)

Le fasi per la computazione di un job MapReduce sono principalmente 4:

1 Split dei dati in input: i dati in input vengono divisi in n partizioni,di una certa dimensione, ogni partizione viene assegnata ad unmapper differente

2 Fase di Map: in parallelo, ogni mapper prende in input una coppiachiave/valore(key/value), rappresentata da un record logicodell’input.In output, restituisce zero o piu coppie chiave/valore per quelladeterminata coppia chiave/valore in input.Ossia:

map(chiave1, valore1) → list(chiave2, valore2)

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 8 / 41

Page 17: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Esecuzione di un job MapReduce: Fasi (2/2)

3 Fase di shuffle e ordinamento: per ogni coppia chiave/valoreottenuta dalla fase di map, si determina il reducer che dovrariceverla (partitioning), inoltre le chiavi in input ad ogni reducersaranno ordinate

4 Fase di Reduce: sulle coppie ottenute nella fase precedente, vieneapplicata la funzione di riduzione sui valori aventi la stessa chiave, irisultati vengono raggruppati, restituiti in output ed eventualmentememorizzati, in base ai requisiti del job.Ossia:

reduce(chiave2, list(valori2)) → list(chiave3, valore3)

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 9 / 41

Page 18: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Esecuzione di un job MapReduce: Fasi (2/2)

5 Fase di shuffle e ordinamento: per ogni coppia chiave/valoreottenuta dalla fase di map, si determina il reducer che dovrariceverla (partitioning), inoltre le chiavi in input ad ogni reducersaranno ordinate

6 Fase di Reduce: sulle coppie ottenute nella fase precedente, vieneapplicata la funzione di riduzione sui valori aventi la stessa chiave, irisultati vengono raggruppati, restituiti in output ed eventualmentememorizzati, in base ai requisiti del job.Ossia:

reduce(chiave2, list(valori2)) → list(chiave3, valore3)

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 9 / 41

Page 19: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Esempio: WordCount utilizzando MapReduce

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 10 / 41

Page 20: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Apache Hadoop: Introduzione

Cos’e Hadoop?

Hadoop e un framework open-source per la scrittura e l’esecuzione diapplicazioni distribuite su di un cluster di macchine, che processanograndi quantita di dati.

Hadoop e stato creato nel 2005 da Doug Reed Cutting e MikeCafarella

E’ ispirato dal Google File System (GFS) e da MapReduce di Google

E’ un marchio registrato dell’ Apache Software Foundation

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 11 / 41

Page 21: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Apache Hadoop: Introduzione

Cos’e Hadoop?

Hadoop e un framework open-source per la scrittura e l’esecuzione diapplicazioni distribuite su di un cluster di macchine, che processanograndi quantita di dati.

Hadoop e stato creato nel 2005 da Doug Reed Cutting e MikeCafarella

E’ ispirato dal Google File System (GFS) e da MapReduce di Google

E’ un marchio registrato dell’ Apache Software Foundation

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 11 / 41

Page 22: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Apache Hadoop: Introduzione

Cos’e Hadoop?

Hadoop e un framework open-source per la scrittura e l’esecuzione diapplicazioni distribuite su di un cluster di macchine, che processanograndi quantita di dati.

Hadoop e stato creato nel 2005 da Doug Reed Cutting e MikeCafarella

E’ ispirato dal Google File System (GFS) e da MapReduce di Google

E’ un marchio registrato dell’ Apache Software Foundation

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 11 / 41

Page 23: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Apache Hadoop: Introduzione

Cos’e Hadoop?

Hadoop e un framework open-source per la scrittura e l’esecuzione diapplicazioni distribuite su di un cluster di macchine, che processanograndi quantita di dati.

Hadoop e stato creato nel 2005 da Doug Reed Cutting e MikeCafarella

E’ ispirato dal Google File System (GFS) e da MapReduce di Google

E’ un marchio registrato dell’ Apache Software Foundation

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 11 / 41

Page 24: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Come interagire con un cluster Hadoop?

Un cluster Hadoop e un insieme di macchine commodity. Lemacchine sono collegate tra loro attraverso la rete e si trovano nellastessa locazioneDiversi client si connettono da remoto al cluster di Hadoop esottomettono ad esso il job da eseguire

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 12 / 41

Page 25: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Perche Apache Hadoop?

Potenza di calcolo: il modello di calcolo distribuito di Hadoopprocessa velocemente big data

Fault tolerance: i dati e le applicazioni processate sono protette daifallimenti hardware. Se un nodo cade, i job vengonoautomaticamente rediretti ad altri nodi, in questo modo lacomputazione non fallisce. Vengono memorizzate, automaticamente,piu copie di tutti i dati

Flessibilita: e possibile memorizzare dati di qualsiasi tipo, cometesto, immagini e video

Basso costo: il framework open-source e gratuito e usa hardwarecommodity

Scalabilita: aggiungendo piu nodi al cluster, Hadoop riesce a gestirel’aumento dei dati, in tempo lineare

Semplicita: Hadoop permette agli utenti di scrivere velocementecodice parallelo efficiente

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 13 / 41

Page 26: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Apache Hadoop: Architettura master/slave (1/2)

Core di Hadoop

Hadoop presenta un’architettura distribuita master/slave formata daiseguenti componenti principali:

Hadoop Common: strato software comune che fornisce funzioni disupporto agli altri moduli Hadoop

Hadoop Distributed File System (HDFS): file system distribuitoche si occupa della memorizzazione dei dati

Yet Another Resource Negotiator (YARN): introdotto in Hadoop2, si occupa della gestione delle risorse del cluster(resource manager)

MapReduce: modello di programmazione batch che consente ilprocessamento di una grande mole di dati.In Hadoop 2, MapReduce e implementato come un’applicazioneYARN

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 14 / 41

Page 27: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Apache Hadoop: Architettura master/slave (2/2)

Il master YARN esegue, per ogni applicazione YARN, lo schedulingeffettivo del lavoro

Il master MapReduce si occupa di dove il lavoro computazionaledeve essere eseguito nei nodi slave

Il master HDFS e responsabile del partizionamento dei datimemorizzati nei nodi slave e tiene traccia di dove i dati sono situati

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 15 / 41

Page 28: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Componenti del core di Hadoop: HDFS (1/3)

File System distribuito ispirato al Google File System (GFS)

Ottimizzato per lavorare con grandi quantita di dati

Presenta un’elevata velocita di accesso ai dati, in quanto leapplicazioni HDFS utilizzano modelli di accessowrite-once-read-many

Replica i file per un numero di volte configurato (ridondanza deidati)

E’ in grado di gestire fallimenti hardware e software, ri-replicandoautomaticamente i blocchi di dati sui nodi che hanno fallito (faulttolerance)

Permette alle applicazioni di spostare la loro computazione dovesono memorizzati i dati, cosı da minimizzare la congestione della rete

E’ progettato per essere facilmente portabile da una piattaforma adun’altra

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 16 / 41

Page 29: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Componenti del core di Hadoop: HDFS (2/3)

Architettura

HDFS ha un’architettura master/slave costituita da:

un singolo NameNode: master che dirige piu slave DataNodenell’esecuzione delle operazioni di I/O a basso livello.Il NameNode tiene traccia di come i file sono divisi in blocchi, diquali DataNode memorizzano questi blocchi, dello stato generaledell’HDFS, regolano, inoltre, le operazioni di accesso ai file e cartelleda parte dei client HDFS

piu DataNode: slave che contengono i dati veri e propri edeseguono fisicamente le operazioni sui blocchi, come creazione,cancellazione, replica, per servire le richieste di lettura e scrittura daparte dei client HDFS

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 17 / 41

Page 30: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Componenti del core di Hadoop: HDFS (3/3)

Architettura HDFS

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 18 / 41

Page 31: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Componenti del core di Hadoop: MapReduce (1/3)

Cos’e MapReduce?

Come visto in precedenza, MapReduce e un modello di programmazioneper il processamento e la generazione di dati massivi, attraverso unalgoritmo parallelo e distribuito su di un cluster

Architettura

In Hadoop 1, MapReduce presenta due componenti:

JobTracker: nodo master del cluster Hadoop eseguito sulNameNode, esiste un solo JobTracker per cluster.Il JobTracker e il collegamento tra l’applicazione client e Hadoop, sioccupa della gestione delle risorse e del ciclo di vita del jobMapReduce

TaskTracker: C’e un solo TaskTracker per nodo slave, ogniTaskTracker e responsabile della gestione ed esecuzione dei taskindividuali che il JobTracker gli ha assegnato

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 19 / 41

Page 32: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Componenti del core di Hadoop: MapReduce (1/3)

Cos’e MapReduce?

Come visto in precedenza, MapReduce e un modello di programmazioneper il processamento e la generazione di dati massivi, attraverso unalgoritmo parallelo e distribuito su di un cluster

Architettura

In Hadoop 1, MapReduce presenta due componenti:

JobTracker: nodo master del cluster Hadoop eseguito sulNameNode, esiste un solo JobTracker per cluster.Il JobTracker e il collegamento tra l’applicazione client e Hadoop, sioccupa della gestione delle risorse e del ciclo di vita del jobMapReduce

TaskTracker: C’e un solo TaskTracker per nodo slave, ogniTaskTracker e responsabile della gestione ed esecuzione dei taskindividuali che il JobTracker gli ha assegnato

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 19 / 41

Page 33: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Componenti del core di Hadoop: MapReduce (2/3)

Architettura MapReduce

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 20 / 41

Page 34: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Componenti del core di Hadoop: MapReduce (3/3)

Processo MapReduce

I client sottomettono i job al cluster Hadoop

Il JobTracker determina i job da eseguire e alloca i task agli slaveTaskTracker, che sono in esecuzione sui DataNode

Il JobTracker controllera l’esecuzione dei TaskTracker, tenendotraccia delle risorse consumate e disponibili e risolvendo eventualisituazioni di fallimento dei task

Ogni TaskTracker gestisce i task che il JobTracker gli ha assegnato

Ogni TaskTracker puo generare JVM multiple per gestire piu task dimap e reduce in parallelo

Ogni TaskTracker deve costantemente comunicare al JobTracker lostato del task. Se il JobTracker non riceve nulla per un determinatoperiodo di tempo, allora assumera il TaskTracker come crashato eriassegnera i task corrispondenti ad altri nodi del cluster

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 21 / 41

Page 35: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Componenti del core di Hadoop: YARN (1/5)

Limiti di Hadoop 1

MapReduce e principalmente utilizzato per elaborazioni batch,quindi non lavora bene in presenza di dati real-time

MapReduce non supporta computazioni iterative o elaborazioni sugrafi

Cos’e YARN?

YARN e il Cluster Manager di Hadoop, funge da scheduler genericoe distribuito delle applicazioni e delle risorse

YARN e stato introdotto in Hadoop 2 per superare i limiti delMapReduce in Hadoop 1

YARN risponde alle richieste del client creando un container, ovveroun concetto astratto che rappresenta la collezione di risorse fisicheallocate per un’applicazione

YARN monitora l’esecuzione del container, terminandola senecessario

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 22 / 41

Page 36: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Componenti del core di Hadoop: YARN (1/5)

Limiti di Hadoop 1

MapReduce e principalmente utilizzato per elaborazioni batch,quindi non lavora bene in presenza di dati real-time

MapReduce non supporta computazioni iterative o elaborazioni sugrafi

Cos’e YARN?

YARN e il Cluster Manager di Hadoop, funge da scheduler genericoe distribuito delle applicazioni e delle risorse

YARN e stato introdotto in Hadoop 2 per superare i limiti delMapReduce in Hadoop 1

YARN risponde alle richieste del client creando un container, ovveroun concetto astratto che rappresenta la collezione di risorse fisicheallocate per un’applicazione

YARN monitora l’esecuzione del container, terminandola senecessario

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 22 / 41

Page 37: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Componenti del core di Hadoop: YARN (2/5)

Hadoop 1 vs Hadoop 2

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 23 / 41

Page 38: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Componenti del core di Hadoop: YARN (3/5)

Componenti principali

In YARN, le funzioni svolte dal JobTracker sono state affidate a duecomponenti principali:

ResourceManager: Un cluster Hadoop ha un singoloResourceManager per l’intero cluster.Il ResourceManager e un processo master YARN che si occupa digestire le risorse del cluster Hadoop e di rispondere alle richieste delclient per la creazione dei container.La creazione effettiva dei container e delegata al NodeManager

NodeManager: processo slave eseguito su ogni nodo del cluster.Si occupa di creare, monitorare ed eliminare i container.Inoltre fornisce dei report sullo stato dei container alResourceManager, che li utilizza per gestire le richieste di nuovicontainer

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 24 / 41

Page 39: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Componenti del core di Hadoop: YARN (4/5)

Esecuzione di una applicazione YARN

1 Si lancia un’applicazione YARN, quindi un client YARN comunica alResourceManager di creare una nuova istanza di unApplicationMaster

2 L’ApplicationMaster, processo master di una applicazione YARN,che crea, attraverso il ResourceManager, i container dell’applicazione

3 L’ApplicationMaster stabilisce poi il collegamento con ilNodeManager per la creazione effettiva dei container

4 Se si verifica un fallimento tra i container dell’applicazione, ilResourceManager invia un messaggio all’ApplicationMaster, chedecide come gestire l’evento

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 25 / 41

Page 40: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Componenti del core di Hadoop: YARN (5/5)

Esecuzione di una applicazione YARN

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 26 / 41

Page 41: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Apache Spark: Introduzione

Apache Spark e un framework open-source general-purpose dicalcolo distribuito su cluster, fornisce un’interfaccia che garantiscedurante le computazioni il parallelismo dei dati e la fault-tolerance

Spark e stato sviluppato dall’UC Berkeley nel 2009 e poi donatoall’Apache Software Foundation nel 2013

Spark e stato progettato per velocizzare le computazioni, e basatosu Hadoop MapReduce ma estende il modello MapReducepermettendo piu tipi di computazioni, che includono queryinterattive, stream processing e machine learning

Caratteristica principale

Esecuzione dei calcoli in memoria centrale, compresa la memorizzazionedei risultati intermedi!Questa caratteristica permette di velocizzare l’esecuzione di unaapplicazione

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 27 / 41

Page 42: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Apache Spark: Introduzione

Apache Spark e un framework open-source general-purpose dicalcolo distribuito su cluster, fornisce un’interfaccia che garantiscedurante le computazioni il parallelismo dei dati e la fault-tolerance

Spark e stato sviluppato dall’UC Berkeley nel 2009 e poi donatoall’Apache Software Foundation nel 2013

Spark e stato progettato per velocizzare le computazioni, e basatosu Hadoop MapReduce ma estende il modello MapReducepermettendo piu tipi di computazioni, che includono queryinterattive, stream processing e machine learning

Caratteristica principale

Esecuzione dei calcoli in memoria centrale, compresa la memorizzazionedei risultati intermedi!Questa caratteristica permette di velocizzare l’esecuzione di unaapplicazione

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 27 / 41

Page 43: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Perche scegliere Apache Spark?

Semplicita: tutte le funzionalita di Spark sono accessibili tramite ilsuo insieme di API, ben documentato e che permette ai dati diinteragire velocemente e facilmente

Velocita: riduce il numero di operazioni di lettura/scrittura su discoeseguendo i calcoli e memorizzando i risultati intermedi, in memoriacentrale

Supporta diversi linguaggi: Spark supporta diversi linguaggi diprogrammazione come Java, Python, R, and Scala

Analisi avanzate: Spark non supporta solo job MapReduce, maanche query SQL, streaming data, machine learning e algoritmirelativi ai grafi

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 28 / 41

Page 44: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Ambiente Apache Spark

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 29 / 41

Page 45: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Ambiente Apache Spark: Componenti (1/8)

Spark Core

Spark Core e il cuore di Spark e contiene:

componenti per il task scheduling

componenti per la gestione della memoria

componenti per il recupero da fallimenti

le principali strutture di astrazione dei dati (RDD)

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 30 / 41

Page 46: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Ambiente Apache Spark: Componenti (2/8)

Resilient Distributed Datasets (RDD)

Resilient Distributed Datasets (RDD) e la struttura datifondamentale di Spark

E’ una collezione immutabile distribuita di oggetti

Ogni dataset in RDD e diviso in partizioni logiche, che possonoessere computate su diversi nodi del cluster

RDD puo contenere oggetti di qualsiasi tipo, Python, Scala, Java,incluse classi definite dall’utente

RDD e una collezione fault-tolerant di elementi che possono essereutilizzati in parallelo

Un RDD puo essere creato a partire da un dataset esterno(JSON,HDFS,MySQL,CSV...) o a seguito di manipolazioni diun’applicazione Spark (derivati da oggetti Scala,Python,Java...)

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 31 / 41

Page 47: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Ambiente Apache Spark: Componenti(3/8)

Operazioni su RDD

Una volta che il dato e stato memorizzato in un RDD, su di esso sarannopossibili due operazioni:

Trasformazioni: Creazione di un nuovo RDD da un RDDprecedente, attraverso operazioni come mapping, filtering, ed altre

Azioni: Restituiscono al Driver un risultato calcolato a partire da unRDD, o lo scrivono su disco

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 32 / 41

Page 48: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Ambiente Apache Spark: Componenti (4/8)

Spark SQL

Pacchetto dedicato all’interfaccia con dati strutturati

Permette interrogazioni sui dati in linguaggio SQL (e sue varianti ades: HQL)

Permette la lettura da varie sorgenti di dati (tabelle Hive, Parquet,JSON...)

Permette la combinazione di query in linguaggio SQL con lamanipolazione dei dati tipica degli RDD (in diversi linguaggi, ad es.Java, Python, Scala)

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 33 / 41

Page 49: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Ambiente Apache Spark: Componenti (5/8)

Spark Streaming

Componente per il processamento real-time di flussi continui di dati

Fornisce API per la gestione di flussi di dati utilizzando lecomponenti base di Spark Core (RDD)

Progettato per fornire lo stesso grado di tolleranza ai fallimenti,throughput e scalabilita di Spark Core

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 34 / 41

Page 50: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Ambiente Apache Spark: Componenti (6/8)

GraphX

Libreria per la gestione di grafi (ad es. grafi sociali basati sulleamicizie, sui messaggi tra utenti ecc.)

Fornisce computazioni sul grafo altamente parallelizzabili

Permette la creazione di grafi a partire da RDD

Fornisce vari operatori per la gestione dei grafi (es: subgraph,mapVertices...)

Fornisce una libreria di algoritmi comuni specifici per i grafi(PageRank, maxOutDegree, maxInDegree...)

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 35 / 41

Page 51: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Ambiente Apache Spark: Componenti (7/8)

MLib

Contiene le funzionalita piu comuni di machine learning (ML)

Fornisce diversi algoritmi di apprendimento automatico(classificazione, regressione, clustering...)

Tutti i metodi sono progettati per poter distribuire il calcolo sucluster di macchine

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 36 / 41

Page 52: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Ambiente Apache Spark: Componenti (8/8)

SparkR

Pacchetto che permette di utilizzare R (linguaggio diprogrammazione statistico) in ambiente Spark

Contiene un’implementazione distribuita dei Data Frame di R(Distributed Data Frame)

Supporta le operazioni di selezione, filtraggio, aggregazione tipichedi R

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 37 / 41

Page 53: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Apache Spark: Architettura (1/3)

Schema dei componenti di Spark

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 38 / 41

Page 54: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Apache Spark: Architettura (2/3)

Passi per l’esecuzione di un’applicazione Spark

1 Un’applicazione Spark e eseguita come un insieme di processiindipendenti sul cluster, coordinati dall’oggetto SparkContextcontenuto nel programma principale chiamato Driver Program

2 Lo SparkContext deve connettersi al Cluster Manager che ha ilcompito di allocare le risorse

3 Una volta connesso, lo SparkContext avvia gli Executor, processiresponsabili dello svolgimento delle operazioni, all’interno dei WorkerNode

4 Ogni processo Executor, uno per ogni core del processore, e in realtauna Java Virtual Machine, a cui viene inviato il codice delprogramma (contenuto in un file JAR) ed i task che deve eseguire

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 39 / 41

Page 55: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

Apache Spark: Architettura (3/3)

Tipi di Cluster Manager

Spark supporta tre tipi di Cluster Manager:

Standalone: Un semplice Cluster Manager incluso in Spark,facilmente configurabile

Apache Mesos: Un Cluster Manager generale che puo ancheeseguire Hadoop MapReduce e applicazioni di servizio

Hadoop YARN: Il Resource Manager contenuto in Hadoop 2

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 40 / 41

Page 56: Big Data: tecnologie, metodologie e applicazioni per l ... · Big Data Introduzione MapReduce Apache Hadoop Apache Spark Introduzione ai Big Data (1/2) De nizione Informale Per Big

Big Data

IntroduzioneMapReduceApache HadoopApache Spark

In conclusione: Benefici di Hadoop e Spark

Spark non e il sostituto di Hadoop, il MapReduce non e morto

Spark non e una versione modificata di Hadoop

Hadoop e solo un modo per implementare Spark, in tal caso Sparkbeneficia del Cluster Manager (YARN) e del livello di storage(HDFS) di Hadoop

Spark pero, puo anche essere completamente separato da Hadoop,integrando al suo interno Cluster Manager e piattaforme per lostorage dei dati alternativi

Quando Spark viene eseguito su Hadoop, Spark, grazie ai suoimoduli relativi al machine learning, ai grafi, all’SQL, fornisce ad essodelle funzionalita aggiuntive

Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 41 / 41