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

Documenti analoghi
Subsection 1. MapReduce

Big Data Tecnologie, metodologie per l analisi di dati massivi Seminario ISCOM

Elaborazione dati parallela con map/reduce. Roberto Congiu

Tecnologie e metodologie di Big Data Analytics - Apache Spark

Big Data: tecnologie, metodologie e applicazioni per l analisi dei dati massivi

INDEXING: DISTRIBUITO O MAPREDUCE? Davide Tuccilli Algoritmi Avanzati A.A. 2011/2012

Esercizio 1. Si consideri il seguente frammento di FAT: Blocco Fisico - valore nella FAT. e di directory D1 : nome file - primo blocco A 32 B 36

MapReduce: teoria e implementazione

DataBase NoSQL. Prof. Marco Pedroni Unversità degli Studi di Ferrara

Sperimentazione del file-system distribuito HDFS in ambiente GRID. III Borsista Day, Roma,

BASI DI DATI DISTRIBUITE

Sistemi Operativi (modulo di Informatica II) L interfaccia del file system

Informatica 3. LEZIONE 20: Ordinamento esterno. Modulo 1: Organizzazione della memoria Modulo 2: Ordinamento esterno

Elementi di Informatica A. A. 2016/2017

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

Sistemi Operativi. Il file system Casi di studio. Sistemi Operativi. Corso di laurea in Informatica. AA 2002/03 Bruschi, Rosti

Soluzioni distribuite per la BioInformatica nel Virtual Data 5 Aprile Center / 33

File: definizione. Il file è la più piccola unità logica manipolabie Un file è caratterizzato principalmente da:

La memoria secondaria

CONFIGURAZIONI E TESTING DI HADOOP-FS PER L'ALTA AFFIDABILITÀ DEI DATI DI UN SITO MEDIO-PICCOLO

Introduzione Definizioni

Input/Output (Cap. 7, Stallings)

Sistemi Operativi (modulo di Informatica II) L interfaccia del file system

Esercitazione. programmazione MapReduce con Hadoop v1.2.1

Sistemi Operativi. L interfaccia del file system

Esercizio FAT 1. Soluzione: 1. Capacità del disco: 2 24 blocchi (3 byte=24 bit) 2

Informatica II Sistemi Operativi DIGIP - a.a. 2015/16

Esercizio FAT 1. Soluzione:

Modelli e problematiche di file system

Sistema di monitoraggio per datacenter distribuiti geograficamente basati su OpenStack

Architettura di NTFS 1

Logico e fisico. Fisico: legato agli aspetti costruttivi e tecnologici HARDWARE Logico: legato al significato e all organizzazione SOFTWARE FISICO

Sistemi Operativi FILE SYSTEM : INTERFACCIA. D. Talia - UNICAL. Sistemi Operativi 8.1

Introduzione ai thread

File System FAT. Il file system FAT è il file system usato da MS-DOS, Windows 3.1 e Windows 95

Sistema Operativo (Software di base)

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Sistemi Operativi. Bruschi Martignoni Monga

Laboratorio di Informatica (Chimica)

Sistemi RAID. Motivazioni Concetti di base Livelli RAID. Sommario

Criteri da tenere a mente

Modelli e problematiche di file system. Modelli e problematiche di file system. Modelli e problematiche di file system

Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:

VERIFICA DI SISTEMI. 5 Domanda [1 punto] Calcolare la velocità di trasferimento dei seguenti hard disk:

Conseguenze Algoritmiche del fenomeno small world

Docenti: Fabrizio Benazzi Valter Lelli Azienda USL 11 di Empoli

I THREAD O PROCESSI LEGGERI

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

Informatica 3. Informatica 3. LEZIONE 23: Indicizzazione. Lezione 23 - Modulo 1. Indicizzazione. Introduzione. Indicizzazione:

Introduzione ai. Sistemi Distribuiti

Capitolo 14: Struttura delle memorie di massa

Si può simulare una struttura di directory a multilivelli con una struttura di directory a singolo livello?"

Grid Data Management Services. Griglie e Sistemi di Elaborazione Ubiqui

File system: aspetti implementativi

Esercizio 2. la dimensione del file risultante la velocità di trasferimento minima dell'hard disk

Realizzazione del file system. Fabio Buttussi HCI Lab Dipart. Di Matematica ed Informatica Università degli studi di Udine

Architettura dei calcolatori e sistemi operativi. Input Output. IO 3 Device driver

POLITECNICO DI TORINO

Organizzazione Fisica dei Dati (Parte II)

Esercizi di introduzione alla programmazione

Informatica Generale --- Scritto del XX Settembre 2002

Data-intensive computing systems

Introduzione all Informatica. Alfredo Cuzzocrea. Sistema Operativo

Parallel Frequent Set Counting

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

! 11.2! Silberschatz, Galvin and Gagne 2005! Operating System Concepts 7 th Edition, Jan 1, 2005!

Basi di Dati Architetture Client/Server

FILE E INDICI Architettura DBMS

Sistemi operativi e distribuiti

Ambienti di calcolo a griglia Parte 2. Docente: Marcello CASTELLANO

Architettura di Von Neumann

Strutture dei sistemi di calcolo

SOFTWARE. Programmi e dati che indicano al computer come svolgere un determinato compito

Sommario FONDAMENTI DI INFORMATICA. Schema dell'architettura a livelli del SO. Il Sistema Operativo (SO) SISTEMI OPERATIVI

Test e risultati sull uso di un file system GPFS condiviso su rete WAN

ANALISI E SPERIMENTAZIONE DELLA PIATTAFORMA CLOUD DATAFLOW

Memorie a semiconduttore

Architetture Client/Server. Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo

Esercitazione E7 Prova di autovalutazione

Università degli Studi di Padova - Corso di Laurea in Informatica

Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per:

Introduzione ai. Sistemi Distribuiti

Il Sistema Operativo

Sistemi Operativi. Lez. 14 File System: aspetti implementativi

FONDAMENTI DI INFORMATICA

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Fondamenti di Informatica

Partizioni e File system. Fondamenti di informatica

La memoria cache. Informatica generale

Basi di Dati Parallele

Architetture Client/Server. Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo

Capitolo 2: Strutture dei sistemi di calcolo

Sistemi Operativi 1. Mattia Monga. a.a. 2012/13. Dip. di Informatica Università degli Studi di Milano, Italia

memoria virtuale protezione

Il sistema operativo

Databases. Architettura di un DBMS: Struttura ad indice per i files, B + -Trees

12 Memoria secondaria Struttura del disco Struttura del disco

Architetture Client/Server e World Wide Web

Com è fatto un computer (seconda puntata) Appunti per le classi 1 A cura del prof. Ing. Mario Catalano

Transcript:

Map Reduce, Roma

Sommario 1 Memoria primaria o secondaria? 2 DFS 3 MapReduce 4 Scheduling & Data flow

Alcuni numeri Jeffrey Dean, Stanford talk, November 10, 2010

Dati in-memoria o su disco? Tempi di lettura Su disco Blocco (Windows): 65, 536 KB in 10 ms Cilindro: 16*65,536 in 10 ms 0.104GB/s Tempo di trasferimento dal disco rigido a un buffer è circa 3 Gbit/s 0.3GB/s In memoria 65, 536 KB in 0.1µs Lettura in memoria 65GB/s

Come gestire i Big Data I Concetti Chiave Distributed File System (DFS) Il modello computazionale Map Reduce Scheduling & Data flow.

Distributed File System Google GFS, Hadoop HDFS

Distributed File System (DFS) I dati vengono spezzettati, distribuiti e replicati in più file e più macchine Si hanno cluster di rack Ciascun rack ha 8-64 macchine collegate con uno switch a 1 Gbps I cluster sono collegati tra loro da un backbone principale a 2-8 Gbps I dati si spezzettano in chunk ( 64 MB), ogni chunk ospitato in memoria da una macchina (chunk server). Pochi GB di indice in memoria su ciascuna macchina poco costosa (commodity con CPU poco pregiata). Si hanno almeno 2-3 repliche di un chunk, un solo chunk al più in un rack.

Distributed File System Google GFS, Hadoop HDFS Google GFS o Hadoop HDFS forniscono una mappatura dello spazio dei nomi (namespace < informazione, chunk>), gestiscono la ridondanza e la disponibilità. Sollevano il programmatore da gestire tutta la complessità del calcolo distribuito. Le operazioni tipiche che vengono effettuate sono due: lettura e concatenazione (read e append) Gli update sulle singole macchine sono rari.

Distributed File System Chunk servers Piccolo file chiamato Nodo Master (Name Node in Hadoop HDFS) Archivia i metadati che contengono i puntatori ai chunk di un file e le sue copie Si può replicare

Distributed File System Quante macchine? Nel 2007 Google affermava di avere 403 PB. Tasso di compressione degli indici 3,5%: 14PB di dati prodotti Se tutto l indice va in memoria centrale... con 1.000.000 servers, 2-3 repliche... nel 2007 occorrevano più di un milione di macchine con almeno 64 GB di RAM.

La programmazione distribuita è molto pesante Soluzione: Map-Reduce Map-Reduce viene incontro alle sfide della programmazione distribuita. Le 3 regole Archivia i dati con ridondanza su nodi multipli per garantire la persistenza e la loro disponibilità Effettua il calcolo in prossimittà dei dati per minimizzare il costo per trasferire i dati Usa un modello semplicissimo di programmazione per nascondere la complessità dell architettura

Primo esempio: contare le parole Si ha un documento molto grande Si deve contare il numero di volte che ciascun termine occorre nel file Applicazioni Analizzare i log del web server per determinare le URL più popolari Statistiche sui termini per la ricerca

Conteggio Parole Primo caso Il documento è troppo grande per risiedere in memoria, ma tutte le coppie <parola, frequenza> entrano in memoria

Conteggio Parole Secondo Caso Anche le coppie <parola, frequenza> non entrano in memoria. words(doc.txt) sort uniq -c dove le parole del file vengono collocate nello stesso file, ma una parola per ogni linea Il secondo caso cattura l essenza del MapReduce È facilmente parallelizabile

Conteggio Parole Secondo Caso words(doc.txt) sort uniq -c Map Scandire un termine alla volta Estrarre da ogni record un valore dalla chiave Raggruppare per chiavi Ordinare e Mescolare Ridurre Aggregare, sommare, filtrare o trasformare Scrivere il risultato su file Il principio è sempre lo stesso, Map e Reduce cambiano a seconda del problema

Map Reduce Dichiarare il numero dei Map e di Reduce, una chiave per un solo reduce

MAP

Reduce

Map Reduce Input: un insieme di coppie chiave-valore Il programmatore specifica due metodi: Map(k, v) < k, v > Prende una coppia chiave-valore e calcola un insieme di coppie chiave-valore Si ha una sola chiamata di Map per ogni coppia (k,v) Reduce(k, < v > ) < k, v > Tutti i valori v con la stessa chiave k vengono trattati insieme Esiste una sola chiamata Reduce per ogni chiave unica k

Map Reduce map(key, value): //key: document id; value: il testo del documento for each word w in value: emit(w, 1) reduce(key, values): // key:una parola w; value: un intero come contatore result = 0 for each count v in values: result += v emit(w, result)

Combiners Quando è possibile includere funzioni di tipo Reduce nella funzione di Map Riduce i tempi di calcolo nei Reduce (meno dati intermedi prodotti) Minore costo di comunicazione Minore scrittura di dati intermedi su FS locali. Riduzione del numero dei Reduce da gestire con il Master Node Quali proprietà deve avere la funzione di Reduce per potere essere svolta anche localmente?

Esercizio Supponiamo che i nostri dati di input per l operazione di map-reduce consistono di valori interi (le chiavi non sono importanti). La funzione map prende un intero n e produce la lista di coppie (p, n) tale che p è un divisore primo di n. Per esempio, map(12) = [(2, 12), (3, 12)]. La funzione reduce è l addizione, cioè reduce(p, [i 1, i 2,..., i k ]) = (p, i 1 + i 2 +... + i k ). Calcolare l output, se l input è l insieme di interi 15, 21, 24, 30, 49.

Map Reduce In breve

Map Reduce Esecuzione in parallelo

Scheduling & Data flow Cosa non deve fare il programmatore, ma che fa il sistema Partizione dei dati Scheduling dei task per l esecuzione del programma tra le varie macchine Ordinare per chiave i dati Assegnare i dati (intermedi) ai nodi. Gestire i guasti dei nodi. Gestire la comunicazione delle macchine

Data Flow Input e output finali sono memorizzati nel file system distribuito (DFS): Lo Scheduler tenta di pianificare i compiti di Map vicino alla posizione di archiviazione fisica dei dati di ingresso. I risultati intermedi sono memorizzati su FS locali dei server di Map e Reduce. L uscita è spesso input per un altro compito MapReduce

Coordinamento del Nodo Master Il Nodo Master si occupa del coordinamento: Status del Compito: (inattivo, in corso, completato) Gli stati inattivi vengono mandati in esecuzione non appena i server diventano disponibili Una volta completata un attività di Map, il master invia la posizione e le dimensioni dei suoi R file intermedi, una per ciascuna attività di Reduce il Master invia queste informazioni ai Reducers Il nodo master controlla (ping) i servers periodicamente per rilevare i guasti

Gestione dei guasti Fallimento di un compito Map Le attività completate o in corso sui server slave vengono resettati allo stato di Idle I compiti Idle vengono eventualmente riprogrammati su altri servers Guasto di un server Reduce Solo i compiti in-progress vengono resettati allo stato di Idle. I compiti Reduce di tipo Idle vengono assegnati e riavviati su altri server Fallimento del nodo Master Il compito MapReduce viene interrotto e viene notificato il fallimento al programma

Quanti Map e quanti Reduce? M compiti Map compiti, R Reducers Regola generale: Rendere M molto più grande del N numero di nodi del cluster È sensato assegnare un Map a ogni chunk di DFS. Migliora il bilanciamento del carico dinamico e accelera il recupero da eventuali guasti dei servers. Solitamente R è minore di M Dato che l output è distribuito su R file.

Documentazione J. Leskovec, A. Rajaraman, J. D. Ullman, Mining of Massive Datasets, Capitolo 2, sezioni 2.1-2.2