Elaborazione dati parallela con map/reduce. Roberto Congiu rcongiu@yahoo.com



Documenti analoghi
MapReduce. Progettazione del Software a.a. 2012/13. Università degli Studi di Milano Dept. of Computer Science. Matteo Camilli

Sistemi Operativi. 5 Gestione della memoria

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Fasi di creazione di un programma

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Sommario. Analysis & design delle applicazioni parallele. Misura delle prestazioni parallele. Tecniche di partizionamento.

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Tirocinio per la Laurea Triennale

Architetture Applicative

CALCOLO COMBINATORIO

Funzioni in C. Violetta Lonati

La Gestione delle risorse Renato Agati

SISTEMI OPERATIVI THREAD. Giorgio Giacinto Sistemi Opera=vi

Informatica Generale (Prof. Luca A. Ludovico) Presentazione 5.1 Operazioni aritmetiche nel sistema binario

Entrare nel sistema. Clicca su Entra per entrare nel sistema. PAGINA 1

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Gestione della memoria centrale

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

introduzione I MICROCONTROLLORI

Architettura hardware

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Basi di dati 9 febbraio 2010 Compito A

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Introduzione al sistema operativo Il file system: file, directory,...

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Esempi di algoritmi. Lezione III

Mac Application Manager 1.3 (SOLO PER TIGER)

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Approccio stratificato

Cluster per architetture a componenti

UNIEMENS Manuale consultazione DM10 Virtuale e DM10VIG nel sito

PROGETTAZIONE FISICA

Scuola Superiore Sant Anna. Progetto parte Unix. AA : Distributed File Repository

Introduzione. Informatica B. Daniele Loiacono

Corso di Sistemi di Elaborazione delle informazioni

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio

Linguaggi e Paradigmi di Programmazione

Invio SMS. DM Board ICS Invio SMS

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Programmare in Java. Olga Scotti

Corso di Informatica

Coordinazione Distribuita

Memoria primaria o secondaria? DFS MapReduce Scheduling & Data flow. Map Reduce. Giambattista Amati. Università di Tor Vergata.

Traccia di soluzione dell esercizio del 25/1/2005

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Realizzazione di una chat su protocollo HTTP

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Gestione del workflow

GESTIONE DELLA MEMORIA CENTRALE

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Corso di Informatica

ENTRARE NEL SISTEMA. Clicca su Entra per entrare nel sistema. PAGINA 1

B+Trees. Introduzione

GCEWEB Denunce mensili in WEB

1 ACCESSO AL 3 2 CARICAMENTO DELLE RICHIESTE/PRESTAZIONI MONITORAGGIO DELLE RICHIESTE DOWNLOAD ESITI...

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

Quattro chiacchere sul Peer to Peer p.1/20

MapReduce: Modelli e Algoritmi

FONDAMENTI di INFORMATICA L. Mezzalira

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

Software di base. Corso di Fondamenti di Informatica

INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Linux nel calcolo distribuito

Introduzione all analisi dei segnali digitali.

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

Soluzione dell esercizio del 12 Febbraio 2004

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Il software. la parte contro cui si può solo imprecare. Il software

Scheduling della CPU Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica

Ti consente di ricevere velocemente tutte le informazioni inviate dal personale, in maniera assolutamente puntuale, controllata ed organizzata.

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

Rendering air show e verifica della sincronizzazione

Sistemi operativi e reti A.A Lezione 2

12. Implementazione di un File System Struttura a livelli Allocazione contigua

File system II. Sistemi Operativi Lez. 20

Ambienti di calcolo a griglia Parte 2. Risorse (e loro gestione) Job di griglia e applicazioni di griglia Riservare le risorse ai job

ISTRUZIONI PER LA GESTIONE BUDGET

SIRTEL. Sistema Informativo per la Rendicontazione Telematica degli Enti Locali. Schema di funzionamento del processo per l Ente Locale

FIRESHOP.NET. Gestione del taglia e colore.

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Naming nei Sistemi Distribuiti

Naming nei Sistemi Distribuiti

Informatica per la comunicazione" - lezione 7 -

24 : 3 = 8 con resto 0 26 : 4 = 6 con resto 2

Esame di INFORMATICA

Client - Server. Client Web: il BROWSER

Scheduling. Sistemi Operativi e Distribuiti A.A Bellettini - Maggiorini. Concetti di base

Informatica di Base - 6 c.f.u.

Transcript:

Elaborazione dati parallela con map/reduce Roberto Congiu rcongiu@yahoo.com

Indice delle slide Introduzione a Map/Reduce Descrizione del modello Implementazione Ottimizzazioni

Introduzione Map/Reduce e un modello di programmazione e la sua implementazione per elaborare grandi quantita di dati Le applicazioni scritte usando map reduce possono essere eseguite in cluster di macchine economiche con una curva di apprendimento brevissima

Tipo di applicazioni Web Indexing Reverse Web-Link graph Distributed sort URL access counter

Vantaggi Elaborazione distribuita su un cluster commodity Scalabile quasi linearmente Paradigma facile da imparare per il programmatore

Modello Input: insieme di coppie chiave/valore Output: insieme di coppie chiave/valore Elaborazione in due stadi: Map e Reduce Map produce un insieme intermedio di coppie chiave/valore Map e Reduce sono scritte dallo sviluppatore

Esempio (1) Contare il numero di occorrenze di una parola Map(String key, String value): // key: document name // value: document contents for each word w in value: EmitIntermediate(w, 1 );

Esempio (2) Reduce (String key, Iterator values): // key: a word // values: a list of counts int result=0 for each v in values: result += ParseInt(v) Emit(AsString(result))

Esempio (3) Map emette le parole con un semplice 1 associato Reduce somma tutti gli 1 prodotti per ottenere il totale Il programmatore indica indica anche i nomi dei file di ingresso e di uscita e i parametri (opzionali) di ottimizzazione. Il codice e linkato con la libreria

Types Map: (k1,v1) -> list(k2,v2) Reduce: (k2,list(v2)) -> list(v2)

Implementazione Diverse implementazioni sono possibili a seconda dell hardware disponibile Ci focalizzeremo su cluster di macchine di basse prestazioni (single/dual proc x86 con 2G di RAM e disco IDE) piuttosto che su supercomputer

Implementation schema

Partizionamento I dati in ingresso vengono divisi in M partizioni Le M partizioni verranno elaborate in parallelo dai mapper su macchine diverse L operazione di reduce e parallelizzata partizionando lo spazio delle chiavi intermedie in R partizioni (hash(key) mod R)

Partizionamento Il numero di partizioni M e in genere scelto tale che ogni partizione sia dai 16 ai 64 Mb (controllabile come parametro) Il numero di partizioni R e la funzione di partizionamento sono specificate dall utente.

Master e Workers Su ogni macchina del cluster gira uno o piu processi controllati dalla libreria Un processo e il master, che assegna ai workers un operazione di map o di reduce, passandogli la partizione da elaborare Un worker che elabora un map legge la partizione in ingresso e emette chiave/valore in M partizioni usando la funzione di hash specificata dall utente.

Master e workers Il map worker bufferizza su disco il risultato. Quando termina, notifica il master con la locazione dei file prodotti (un numero <= M) Quando tutti I map sono terminati, il master assegna le operazioni di reduce passando la lista di n file per una delle R partizioni (n<=m).

Reduce Il reduce worker ordina tutti I file in ingresso per chiave Per ogni chiave incontrata, passa tutti I valori corrispondenti alla funzione scritta dall utente Il reduce worker quindi scrive in un file system globale I risultati emessi per quella partizione

Output L output e partizionato in R file Non e necessario ricombinarli se sono a loro volta l input di un altro processo di map/reduce

Master Per ogni operazione di map o reduce, mantiene lo stato (idle, in-progress, completed) Propaga le locazioni dei file di input, intermedi, e di output

Fault tolerance Il master pinga periodicamente I worker Se il worker non risponde entro un certo tempo, viene considerato fallito e quindi re-schedulato (impostato a idle) Le operazioni di map salvano il loro output su dischi locali e quindi vengono reschedulate anche se complete se la macchina sulla quale sono state eseguite ha un guasto

Fault tolerance Le operazioni di reduce salvano il loro risultato su un disco globale quindi non hanno bisogno di essere re-esguite. Il fallimento del master e improbabile, ma puo periodicamente salvare su disco lo stato ed essere rieseguito.

Operazioni di backup In un cluster, alcune macchine possono essere molto piu lente di altre (problemi di rete, di carico eccessivo): il task di map o reduce puo quindi essere lento e ritardare il completamento dell elaborazione Quando l elaborazione e vicina al completamento, tutte le operazioni in progress vengono rischedulate. Il primo worker che completa viene preso, l altro scartato Questo meccanismo generalmente migliora le prestazioni di circa il 40%

Combiner Nell esempio del conteggio delle parole, si potrebbe calcolare un subtotale per ogni mapper per rendere piu piccoli I file in uscita Ottimizzazione: il combiner calcola il subtotale usando la stessa funzione usata per il reduce L operazione di reduce deve essere associativa e commutativa.

Formato di input e output Qualsiasi formato che possa essere trattato come chiave/valore puo essere utilizzato Nell implementazione, si puo astrarre in un reader/writer generico

Errori di elaborazione Se un file provoca un errore in maniera deterministica (per esempio un segfault) in un worker, l elaborazione non verra mai portata a termine Si puo implementare un meccanismo che marca I record problematici e permette di saltarli, loggarli e completare comunque l elaborazione

Bibliografia MapReduce: Simplified Data Processing on Large Clusters (J.Dean e Sanjay Ghemewat)