Distributed Data Stream Processing

Documenti analoghi
Distributed Data Stream Processing

Sistemi e Architetture per Big Data - A.A. 2017/18 Progetto 2: Analisi del dataset ACM DEBS Grand Challenge 2016 con Storm/Flink

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

Savitar: Analisi di dati in tempo reale di una partita di calcio. Sistemi e architetture per Big Data

BASI DI DATI DISTRIBUITE

Tecnologie e metodologie di Big Data Analytics - Apache Spark

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

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

Indice generale. Introduzione...xiii. Gli autori...xvii. I revisori...xix

Big data ed eventi: quasi un tutorial. Prof. Riccardo Melen

UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13

Scalabilità Energetica di Algoritmi Paralleli su Architetture Multicore. Gennaro Cordasco

Sviluppo di sistemi scalabili con Apache Spark. Alessandro Natilla - 22/10/2016 1

Capitolo 9. Sistemi di basi di dati Pearson Addison-Wesley. All rights reserved

Sistemi distribuiti su larga scala

Architetture Client/Server e World Wide Web

Informatica giuridica

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

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

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

Progettazione di un sistema per l analisi di dati real-time

Progettazione e prototipazione di un sistema di Data Stream Processing basato su Apache Storm

Basi di Dati Architetture Client/Server

INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione

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

Sistema di monitoraggio per datacenter distribuiti geograficamente basati su OpenStack

Introduzione D B M G

Gestione di Big RDF Data

Basi di dati. Docente Prof. Alberto Belussi. Anno accademico 2009/10

Sistemi informativi D B M G. Introduzione. Introduzione alle basi di dati D B M G 2. Elena Baralis 2007 Politecnico di Torino 1

Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS

Elena Baralis 2007 Politecnico di Torino 1

Subsection 1. MapReduce

Progettazione ed implementazione di un sistema di calcolo distribuito ibrido multithread/multiprocesso per HPC: applicazione all imaging medico

DOCENTE PROF. ALBERTO BELUSSI. Anno accademico 2010/11

Parallel Frequent Set Counting

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

GeoServer nel Cloud. Un caso di studio sulle modifiche architetturali nel passaggio a piattaforme Cloud. Federico Cacco

Parallel Frequent Set Counting

ALMA MATER STUDIORUM - UNIVERSITÀ DI BOLOGNA. Online Stream Processing di Big Data su Apache Storm per Applicazioni di Instant Coupon

ANALISI E SPERIMENTAZIONE DELLA PIATTAFORMA CLOUD DATAFLOW

Elena Baralis 2007 Politecnico di Torino 1

NoSQL. Definizione. Nella seconda metà degli anni 2000 Google, Amazon, Facebook studiavano nuove modalità di memorizzazione persistente dei dati

Elena Baralis 2007 Politecnico di Torino 1

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project

D B M G 2. Linguaggio SQL: costrutti avanzati. SQL per le applicazioni

Basi di dati D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2012/13

Lezione 1. Introduzione ai sistemi di basi di dati

Metodi per la gestione e l utilizzo efficiente dei dati

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione

SQL per le applicazioni. Basi di dati. Elena Baralis. Pag Politecnico di Torino 1 D B M G2 D B M G4 D B M G5 D B M G6. SQL per le applicazioni

Basi di dati Basi di dati per bioinformatica

Fondamenti di Informatica

Orchestrazione di contenitori

Big Data E già troppo tardi oppure no?

I DATI E LA LORO INTEGRAZIONE 63 4/001.0

Gestione di Big RDF Data

Introduzione ai. Sistemi Distribuiti

Elaborazione dati parallela con map/reduce. Roberto Congiu

Linee di evoluzione dei Database

Piattaforme software distribuite I

MODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia

Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia. Università degli Studi di Salerno

Architetture Applicative Altri Esempi

Modelli di programmazione parallela

LEZIONE BASI DI DATI I 22/10/2008 XML

Lezione n.4 DISTRIBUTED HASH TABLES: INTRODUZIONE 6/3/2009. Laura Ricci

Sommario. Elementi di Parallelismo. Misura delle prestazioni parallele. Tecniche di partizionamento. Load Balancing. Comunicazioni

Esperienze di Advanced Analytics nella statistica ufficiale: strumenti e progetti

Lezione n.7 Distributed Hash Tables

Design of Parallel Algorithm

Isaac DE è una piattaforma Big Data completa di strumenti e servizi per l installazione, la configurazione, l uso, la gestione e il monitoraggio di

Structured Query Language

Le basi di dati. Definizione 1. Lezione 2. Bisogna garantire. Definizione 2 DBMS. Differenza

Area Tecnologica 5 Information Processing and Management. Roma, 24 marzo 2011

Sperimentazione tecnologie big data per elaborazione e analisi dei testi (Big Data Text Analytics)

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

Filippo Bergamasco ( DAIS - Università Ca Foscari di Venezia Anno accademico:

Fondamenti di Informatica

Servizio clienti di alto livello

LABORATORIO di INFORMATICA

Basi di Dati Parallele

Modulo 2 Architetture dei SD Lezione 1

Nella vita quotidiana esistono innumerevoli esempi di database. Un agenda telefonica, un vocabolario o un catalogo di viaggi, sono tutti esempi di

sistemi distribuiti Sistemi distribuiti - architetture varie classificazioni classificazione di Flynn (1972)

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

Architetture Evolute nei Sistemi Informativi. architetture evolute 1

SISTEMI INFORMATIVI E DATABASE

Cenni di Piattaforme di Supporto Clustered per Applicazioni Big Data

Big Query, nosql e Big Data

ANALISI DI DATI DI TRAIETTORIA SU PIATTAFORMA BIG DATA

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

La gestione delle interrogazioni

Sommario. Analysis & design delle applicazioni parallele. Tecniche di partizionamento. Load balancing. Comunicazioni

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

QL (Query Language) Alice Pavarani

Transcript:

Distributed Data Stream Processing Sistemi Distribuiti e Cloud Computing A.A. 2015/16 Matteo Nardelli Matteo Nardelli

Big Data IBM (2014) [1] : ogni giorno vengono creati circa 2,5 trilioni (10 18 ) di byte di dati ed il 90% dei dati è stato creato solo negli ultimi due anni. SOURCE: (2014) http://www.intel.it/content/www/it/it/communications/internet-minute-infographic.html 2

Big Data Ogni anno prodotti circa 1200 EXABYTE (10^18, 2^60) di dati SOURCE: (2011, Stanford Univ.) http://www.domo.com/learn/infographic-the-physical-size-of-big-data Matteo Nardelli 3

Big Data Big Data indica collettivamente un insiemi di dati caratterizzati da (3+1 V): Volumi (terabyte, petabyte); Variabilità (di rappresentazione: strutturati e non strutturati); Velocità: dati in movimento, velocità di generazione e di analisi: utilità dell informazione estraibile degrada rapidamente con il passare del tempo; Veracity (veridicità): l integrità e l affidabilità dei dati: potervi fare affidamento per le operazioni di decision making. Approcci per la loro analisi: MapReduce: store and process; Data Stream Processing: elaborazione veloce dei dati senza memorizzarli. Matteo Nardelli 4

Motivazione number of four-byte integer values read per second from a 1-billion-long (4 GB) array on disk or in memory; random disk reads are for 10,000 indices chosen at random between one and 1 billion Adam Jacobs. 2009. The Pathologies of Big Data. Queue 7, 6, Pages 10 (July 2009), 10 pages. Matteo Nardelli 5

Interesse Estrarre tempestivamente informazioni di interesse (di valore) da un insieme dati con le caratteristiche dei Big Data Produzione energetica: analisi consumi e produzione rinnovabili per allocazione più efficiente; Finanziario: evoluzione/previsione in tempo reale di quote azionarie; Medicina: telemedicina, studiare e prevedere la diffusione epidemica (Google Flu); Sicurezza: uso improprio di reti/sist. pagamento; behavioural pattern recognition; Servizi urbani: dispositivi per info traffico; ottimizzazione trasporti in risposta ad eventi; e.g., statistiche per taxi: tratte più frequenti, aree più redditizie (DEBS 2015 [2] ). Matteo Nardelli 6

Evoluzione delle Soluzioni Soluzioni derivanti da domini/contesti diversi Risultato: termini e soluzioni sovrapponibili (torre di babele) Una non-soluzione sono i DBMS impossibile memorizzazione tutti i dati processarli solo su richiesta DSMS (data stream management system): evoluzione dei DBMS Prevede: processamento continuo delle query (continuous query - CQ) query con sintassi SQL-like su flussi di dati transienti, non memorizzati Matteo Nardelli 7

Evoluzione delle Soluzioni DSP (data stream processing): è il modello che deriva dalla generalizzazione del DSMS (dati non persistenti, continuous query) «processamento di stream provenienti da sorgenti differenti, per produrre nuovi stream in uscita» (Cugola, Margara [3] ) CEP (complex event processing): si sviluppa in parallelo al DSMS, come evoluzione del publish-subscribe; processamento di notifiche di eventi (n.b.: non dati generici) provenienti da sorgenti diverse per identificare pattern di eventi (o eventi complessi) di interesse (in publish-subscribe ogni evento è separato dagli altri) MapReduce: paradigma per la computazione affidabile, scalabile e distribuita dati memorizzazione su file system distribuito (i.e., GFS, HDFS) paradigma «map» e «reduce» per lavorare su sottoinsiemi di dati Matteo Nardelli 8

DSP: Differenze con CEP Tipo di dato: CEP: notifiche di eventi DSP: (teoricamente) qualsiasi Tempo associato al dato ed ordinamento dei dati: CEP: molto importanti/essenziali DSP: non necessariamente considerati Tipologia di linguaggi per definire applicazioni: CEP: pattern-based language per specificare le firing condition e le azioni da intraprendere («if this then that»). DSP: (opzionale) regole di trasformazione (filtraggio, join, aggregazioni) per processare gli stream in ingresso e produrre stream in uscita. Matteo Nardelli 9

DSP: Differenze con Hadoop (MapReduce) Diverse estensioni consentono di usare Hadoop: Per interrogare il dataset con un approccio SQL-like (Apache Hive) Per interrogare il dataset con linguaggio procedurale (Apache Pig) Produrre approssimazioni successive dei risultati e possibilità di fare CQ (MapReduce Online [4] ) Differenze sostanziali: Persistenza: Hadoop necessita della memorizzazione dei dati Batching: Anche negli approcci per il CQ (Hadoop Online) si lavora considerando piccoli batch successivi da analizzare; questo introduce un ritardo proporzionale alla dimensione del batch. Matteo Nardelli 10

Distributed Data Stream Processing Applicazione descritta tramite un grafo diretto aciclico, chiamato «topologia» nodi = operatori dell'applicazione; archi = stream scambiato tra gli operatori Matteo Nardelli 11

DSP: Applicazioni Principali caratteristiche delle applicazioni DSP: Sorgenti: distribuite emettono un flusso continuo (stream) di dati (e.g., tuple) Stream: non memorizzato, riversato su un insieme di operatori Operatori (o Processing Elements): distribuiti progettati per lavorare in parallelo svolgono delle funzioni ben precise (e.g., aggregazione, filtraggio, trasformazione) possono generare un nuovo stream in output stateful: memorizzano uno stato interno (influenza output); stateless: output dipende solo dall input interagiscono solo per mezzo degli stream Matteo Nardelli 12

DSP: Modelli di processamento Di recente, sono emersi due modelli di DSP: one-at-a-time: ogni tupla è inviata singolarmente microbatched: tuple raggruppate prima di essere invite (e.g., Apache Storm) (e.g., Apache Spark) I due approcci sono complementari, trade-off tra punti di forza e debolezze, ed adatti per applicazioni diverse SOURCE: N. Marz, J. Warren. 2015. Big Data. Matteo Nardelli 13

DSP: Ottimizzazioni Generalmente le applicazioni DSP richiedono performance estreme, le diverse comunità hanno sviluppato diverse forme di ottimizzazioni [5] Operator reordering, redundancy elimination, data parallelism, load balancing, load shedding, Parallelismo: processamento dei dati, applicando diverse forme di parallelismo: Pipeline: istruzione complessa suddivisa in una sequenza di passi Task parallelism: eseguire in parallelo le operazioni indipendenti (eventualmente riutilizzando i dati in input) Data parallelism: eseguire in parallelo una stessa operazione su un sottoinsieme dei dati in ingresso Matteo Nardelli 14

Ottimizzazione: Data Parallelism Aumentare le istanze dell operatore ed ogni istanza processa una porzione dello stream operatori stateless: nessun problema operatore stateful: problemi di inconsistenza dello stato Operatori partitioned stateful: caso speciale di operatori stateful; lo stato interno dipende da dati separabili in partizioni (shard) indipendenti parallelizzabile finché i dati della stessa partizione sono contenuti nello stesso stream Ogni shard (partizione orizzontale dei dati) è indirizzata sempre alla stessa istanza dell operatore, identificata applicando una funzione hash-based su sottoinsieme di attributi dei dati (partition key) Matteo Nardelli 15

Ottimizzazione: Load Shedding Load shedding: sacrifica l accuratezza dei risultati se il sistema è sovraccarico Decisioni fondamentali: Come scartare: random, probabilistico, priority-based, tecniche avanzate Quando scartare il traffico: comportamento proattivo o reattivo Dove scartare il traffico: ridurre il carico vicino alla sorgente fa sprecare meno lavoro, ma penalizza un numero maggiore di applicazioni Quanto scartare: dipende dalla politica di shedding adottata (e.g., fino a soddisfacimento soglia, percentuale, numero di classi) Matteo Nardelli 16

Infrastruttura Dove sono le risorse computazionali? Cluster dedicato nodi omogenei, «vicini» ed in numero staticamente definito scelta tradizionale Cloud e Distributed Clouds allocazione dinamica migliore assorbimento delle fluttuazioni nell'arrivo dei dati nodi geograficamente distribuiti nuovo interesse per il DSP, ma anche nuove problematiche i.e., scala, attenzione per la latenza tra i nodi, SLA Soluzioni ibride insieme statico di nodi, estendibili con risorse on-demand nel cloud trade-off tra prestazioni, bilanciamento del carico e costi Matteo Nardelli 17

Il problema dello Scheduling Scheduler: componente dei sistemi di DSP che assegna gli operatori delle applicazioni da eseguire alle risorse computazionali a disposizione Componente critico, influenza fortemente le performance del sistema e delle applicazioni eseguite. Diverse soluzioni: Algoritmo centralizzato vs algoritmo distribuito Conoscenza intera rete, problemi di scalabilità Metriche da ottimizzare Latenza, utilizzo della rete, importanza degli operatori, risorse Capacità adattativa Capacità di ottimizzare il grafo applicativo generalmente con definizione applicazioni con linguaggi formali e.g., merging, splitting e riordinamento degli operatori, load shedding Matteo Nardelli 18

Lambda Architecture Combina (i vantaggi di) diverse soluzioni per analizzare i Big Data Risponde alla stessa «query» fornendo una prima risposta approssimata (tramite speed layer) che viene affinata nel tempo (batch + serving layer): Batch layer: memorizza i dati e calcola delle «batch view» (Hadoop) Serving layer: carica ed indicizza le «batch view» per consentirne l esplorazione in modalità read-only (Google Dremel, Apache Drill, Impala, SploutSQL, ) Speed layer: calcola le «real-time view» in modo incrementale (basse latenze); responsabile per i dati non ancora presenti nelle viste del serving layer (DSP: Storm, Spark, ) Quando le batch view sono disponibili nel serving layer, i risultati corrispondenti presenti nelle realtime view vengono scartati. Matteo Nardelli 19 IMG SOURCE: https://voltdb.com/products/alternatives/lambda-architecture

Lambda Architecture Proprietà: Batch e Serving layer: fault-tolerance e scalabilità di MapReduce Complexity isolation: lo speed layer, che è più difficile da realizzare, può compromettere i risultati per una finestra temporale limitata Flessibilità: usare algoritmi esatti nel batch layer, ed alg. approssimati nello speed layer. I risultati approssimati vengono corretti da quelli esatti (eventual accuracy) Michael Stonebraker (ACM Turing Award 2014) I suoi lavori hanno avuto un ruolo centrale nei sistemi database relazionali odierni Conosciuto per: Ingres (ER), Postgres, Streambase, SciDB, VoltDB (ma non solo!) VoltDB: in-memory, NewSQL (scalable, ACID, RDBMS), real-time database si basa su una semplificazione dell architettura lambda Matteo Nardelli 20

Kappa Architecture Semplificazione della lambda architecture: la presenza del processamento batch e real-time richiede duplicazione del codice ed effort di coordinamento Kappa architecture: uno stream processor può lavorare sia in modalità streaming che batching Applicazione è chiamata workflow Composta da pipeline di task Ogni task può essere un operatore di tipo stream o un job MapReduce Il framework può trattare i task in modo diverso in base alla loro tipologia Trattare = ottimizzare, memorizzare, spostare i risultati intermedi Framework: Apache Flink, Google Cloud DataFlow, Apache Spark Matteo Nardelli 21

Framework per il DSP Amazon Kinesis Apache Storm Matteo Nardelli 22

Amazon Kinesis Elaborazione real-time di streaming data su larga scala; definisce: Stream: sequenza di record Record: {sequence, partition-key, blob}; blob max size 50Kb Shard: numero di nodi su cui suddividere lo stream; questi sono determinati in base al datarate in ingresso ed in uscita desiderati Come funziona? Producers: (sorgenti esterne) generano i record, li immettono con HTTP PUT Matteo Nardelli 23

Amazon Kinesis Consumers: le applicazioni (generalmente su EC2) che processano ogni record dello stream - è possibile avere diverse applicazioni che consumano in modo indipendente e concorrente - l output può essere: un altro Kinesis Stream, EC2, DynamoDB, S3, altro Vantaggi Kinesis gestisce automaticamente l infrastruttura, lo storage e la configurazione necessaria per il recupero e l elaborazione dei dati Infrastruttura: load balancing, coordinamento tra i servizi distribuiti, fault tolerance Storage: dati memorizzati (e replicati) in diverse Availability Zone della stessa regione per 24 ore, periodo in cui sono disponibili Limitazioni Numero massimo di shard (50 o 25 in base alle regioni) Matteo Nardelli 24

Apache Storm Framework distribuito, scalabile, fault-tolerant per il DSP Applicazione (o topologia): componenti spout: sorgente delle tuple bolt: componente che elabora le tuple; può generarne di nuove stream: sequenza non limitata di tuple (tupla: insieme di coppie chiave/valore) spout bolt Poiché un bolt può essere replicato è possibile indicare: fieldgrouping: i campi per il partizionamento dello stream shufflegrouping: non siamo interessati allo stato Matteo Nardelli 25

Apache Storm: architettura ZooKeeper (shared memory) scambio configurazione e sincronizzazione Nimbus (nodo master) Scheduling (distribuzione per l esecuzione) delle applicazioni (topologie) Monitoring applicazioni: riassegnamento in caso di fallimento Worker Node Supervisor avvia e termina i worker process in base alle indicazioni di Nimbus Worker Process esegue (parte del) codice della topologia WN Supervisor WP WP Nimbus ZooKeeper WN Supervisor WN Supervisor WP Matteo Nardelli 26

WordCount in Storm WordCounter (esempio in storm-starter [6] ): Avendo sorgenti che emettono continuamente frasi, vogliamo contare le occorrenze di ogni parola A cosa serve? In modo simile vengono individuati i trend su twitter [7] Matteo Nardelli 27

WordCount in Storm Topologia Classe Java standard: main TopologyBuilder tb = new TopologyBuilder(); tb.setspout("spout", new RandomSentenceSpout(), 5); tb.setbolt("split", new SplitSentence(), 8).shuffleGrouping("spout"); tb.setbolt("count", new WordCount(), 12).fieldsGrouping("split", new Fields("word")); StormSubmitter.submitTopology("word-count", new Config(), tb.createtopology()); Partizionamento Stream Parallelismo componenti API Storm Matteo Nardelli 28

WordCount in Storm RandomSentenceSpout (extends BaseRichSpout ) public void nexttuple() { Utils.sleep(100); collector.emit(new Values(getRandomSentence())); } public void declareoutputfields(outputfieldsdeclarer d) { d.declare(new Fields("sentence")); } API Storm Dichiarazione stream WordCount (extends BaseBasicBolt) public void execute(tuple tuple, BasicOutputCollector collector) { String word = tuple.getstringbyfield("word"); Integer count = updatewordcounthashmap(word); collector.emit(new Values(word, count)); } public void declareoutputfields(outputfieldsdeclarer d) { d.declare(new Fields("word", "count")); } Matteo Nardelli Nuova tupla in uscita 29

Riferimenti [1] IBM. What is big data? 2014. http://www-01.ibm.com/software/data/bigdata/what-is-big-data.html [2] DEBS 2015: Grand Challenge. http://www.debs2015.org/call-grand-challenge.html [3] A. Margara and G. Cugola. 2011. Processing flows of information: from data stream to complex event processing. In Proc. of the 5th ACM DEBS '11. ACM. [4] T.Condie, N.Conway, P.Alvaro et al. 2010. MapReduce online. In Proc. of the 7th USENIX conference on NSDI'10. USENIX Association, Berkeley, CA, USA. [5] M. Hirzel, R. Soulé, S. Schneider, B. Gedik, and R. Grimm. 2014. A catalog of stream processing optimizations. ACM Comput. Surv. 46, 4. [6] Nathan Marz - Storm Starter. https://github.com/nathanmarz/storm-starter [7] M.G. Noll. Real-time Treding Topics With a Distributed Rolling Count Algorithm in Storm: http://www.michael-noll.com/blog/2013/01/18/implementing-real-time-trending-topics-in-storm Amazon Kinesis. url: http://aws.amazon.com/kinesis/ Apache Storm. url: https://storm.apache.org N. Marz and J. Warren. 2015. Big Data: Principles and Best Practices of Scalable Realtime Data Systems. Manning Publications Co. N. Tatbul, U. Çetintemel, S. Zdonik et al. 2003. Load shedding in a data stream manager. In Proc of the 29th international conference VLDB '03. VLDB Endowment 309-320. Kappa Architecture: http://www. kappa-architecture.com Apache Flink Architecture: http://www.confluent.io/blog/real-time-stream-processing-the-next-step-forapache-flink/ Matteo Nardelli 30