Informazioni Generali

Risultati dell'apprendimento

Principi, paradigmi e tecnologie per la progettazione e gestione di sistemi e architetture distribuite relative a servizi ed applicazioni di big data analytics.

CFU

6 CFU, 60 ore di didattica frontale distribuite in 4 ore a settimana

Prerequisiti

Il corso presuppone una conoscenza delle basi di dati, dei sistemi distribuiti e dei servizi cloud.

Orario delle lezioni

Orario valido dal 6/3/2017 al 24/6/2017 (secondo semestre)
  • Lunedì dalle 9:30 alle 11:15, aula B12 edificio didattica
  • Giovedì dalle 9:30 alle 11:15, aula C2 edificio didattica

Docenti

Valeria Cardellini
Tel.: 067259 7388
E-mail: img (è necessario specificare [SABD] nell'oggetto della mail)
Ufficio: stanza D1-17, corpo D dell'edificio "Ingegneria dell'Informazione", primo piano.
Orario di ricevimento:
  • martedì dalle 9:00 alle 11:00 in ufficio.

Matteo Nardelli
E-mail: (è necessario specificare [SABD] nell'oggetto della mail)
Ufficio: stanza D1-19, corpo D dell'edificio "Ingegneria dell'Informazione", primo piano.
Orario di ricevimento: da concordare tramite email.


Avvisi

  • new 23 agosto 2017 - Il primo appello della sessione di settembre è stato posticipato a mercoledì 13 settembre.
  • 12 luglio 2017 - La presentazione del secondo mini-progetto si terrà il 18 luglio dalle 9:30 in aula B9, edificio Didattica.
  • 25 giugno 2017 - Disponibile la traccia del secondo progetto SABD1617_progetto2.pdf.
  • 22 giugno 2017 - La presentazione del secondo mini-progetto si terrà il 18 luglio dalle 9:30; l'aula sarà comunicata a breve.
  • 22 giugno 2017 - Aggiunti i lucidi da 11 in poi in DSPFrameworks.pdf.
  • 21 giugno 2017 - La lezione di domani (giovedì 22/6) inizierà alle ore 10:00.
  • 20 giugno 2017 - Disponibili i lucidi di presentazione del secondo progetto Project2Slides.pdf.
  • 14 giugno 2017 - Come comunicato a lezione, la presentazione del primo mini-progetto si terrà il 15 giugno dalle 9:30 nella sala riunioni al piano terra dell'edificio di Ingegneria dell'Informazione (stanza n. AT 07).
  • 29 maggio 2017 - La presentazione del primo mini-progetto si terrà il 15 giugno in orario di lezione; i lucidi potranno essere inviati ai docenti dopo la presentazione.
  • 22 maggio 2017 - Aggiunti i lucidi da 40 in poi in Spark.pdf.
  • 19 maggio 2017 - Disponibile la traccia del primo progetto SABD1617_progetto1.pdf.
  • 18 maggio 2017 - Disponibili i lucidi di presentazione del primo progetto Project1Slides.pdf.
  • 18 maggio 2017 - Aggiunti i lucidi 16 e da 22 in poi in Spark.pdf.
  • 15 maggio 2017 - Aggiunti i lucidi da 32 in poi in HadoopEcosystem.pdf.
  • 11 maggio 2017 - Aggiunti i lucidi da 34 in poi in DataAcquisition.pdf.
  • 5 maggio 2017 - Per la lezione di lunedì 8 maggio, si consiglia di scaricare in anticipo l'immagine Docker di Hadoop (la stessa usata nella lezione del 23 marzo):
    docker pull matnar/hadoop
  • 19 aprile 2017 - Per la lezione di giovedì 20 aprile, si consiglia di scaricare in anticipo le immagini Docker di hbase e neo4j:
    docker pull harisekhon/hbase
    docker pull neo4j:3.0
  • 10 aprile 2017 - Aggiunti i lucidi da 86 in poi in Storage_NoSQL.pdf.
  • 5 aprile 2017 - Aggiunti i lucidi 13, 14, 15, 28 da 46 in poi in Storage_NoSQL.pdf.
  • 2 aprile 2017 - Per la lezione di giovedì 6 aprile, si consiglia di scaricare in anticipo le immagini Docker alpine-redis e mongo:
    docker pull sickp/alpine-redis
    docker pull mongo
  • 29 marzo 2017 - Aggiunti i lucidi da 70 in poi in ResourceMgmt.pdf.
  • 20 marzo 2017 - Per seguire al meglio la lezione di giovedì 23 marzo, scaricate in anticipo l'immagine Docker con Hadoop:
    docker pull matnar/hadoop
    (è necessario aver pre-installato Docker)
  • 20 marzo 2017 - Aggiunti i lucidi da 41 in poi in ResourceMgmt.pdf.
  • 9 marzo 2017 - Aggiunti i lucidi da 31 in poi in IntroBD.pdf.
  • 6 marzo 2017 - Come concordato, la lezione del giovedì si terrà dalle 9:30 alle 11:15 in aula C2 (anziché dalle 11:15 alle 13:15).

Materiale Didattico

Testi consigliati

Calendario e lucidi delle lezioni

Giorno Argomento Lucidi Ultima modifica
6/3/2017 Organizzazione del corso
Introduzione ai Big Data
Organization.pdf
IntroBD.pdf
6/3/2017
9/3/2017
9/3/2017 Introduzione ai Big Data
Fog computing
vedi lezione precedente
FogComputing.pdf

12/3/2017
13/3/2017 Sistemi per la gestione delle risorse: introduzione, Mesos ResourceMgmt.pdf 29/3/2017
16/3/2017 Sistemi per la gestione delle risorse: DRF, YARN vedi lezione precedente
20/3/2017 Sistemi per la memorizzazione dei dati: introduzione, file system distribuiti Storage.pdf 20/3/2017
23/3/2017 Laboratorio Hadoop Distributed File System Storage_HandsOn_HDFS.pdf
scaletta.txt
Hadoop Docker image
23/3/2017
27/3/2017 Sistemi per la gestione delle risorse: Borg, Omega e Kubernetes vedi lezione del 13/3
30/3/2017 Database NoSQL: introduzione, data store chiave-valore Storage_NoSQL.pdf 10/4/2017
3/4/2017 Database NoSQL: data store family-column e orientati ai documenti vedi lezione del 30/3
6/4/2017 Laboratorio NoSQL Data Store: Redis e MongoDB Storage_HandsOn_NoSQL_KVD.pdf
scaletta.txt
6/4/2017
10/4/2017 Database NoSQL: data store a grafo
Database NewSQL
vedi lezione del 30/3
Storage_NewSQL.pdf

10/4/2017
20/4/2017 Laboratorio NoSQL Data Store: HBase e Neo4j Storage_HandsOn_NoSQL_CG.pdf
scaletta.txt
Code: HBaseClient
26/4/2017
27/4/2017 Acquisizione dei dati: introduzione, Kafka DataAcquisition.pdf 11/5/2017
4/5/2017 Acquisizione dei dati: Flume, Sqoop
Map Reduce & Hadoop
vedi lezione precedente
MapReduce&Hadoop.pdf

11/5/2017
8/5/2017 Laboratorio MapReduce: Design Patterns MapReduce_HandsOn_DesignPatterns.pdf
scaletta.txt
Code: MapReduceDesignPatterns
11/5/2017
11/5/2017 Hadoop ecosystem: Pig e Hive HadoopEcosystem.pdf 15/5/2017
15/5/2017 Hadoop ecosystem: Oozie
Apache Spark: introduzione e architettura
vedi lezione precedente
Spark.pdf

22/5/2017
18/5/2017 Presentazione del primo progetto
Apache Spark: RDD
Project1Slides.pdf
vedi lezione precedente
18/5/2017
22/5/2017 Apache Spark: RDD, persistenza, execution engine, Spark SQL vedi lezione del 15/5
25/5/2017 Laboratorio Apache Spark Spark_HandsOn.pdf
Code: Hands-On Spark
29/5/2017
29/5/2017 Search platforms and time series databases
Data stream processing: introduction
Search&TSDB.pdf
IntroDSP.pdf
29/5/2017
4/6/2017
1/6/2017 Data stream processing: introduction and Storm vedi lezione precedente
5/6/2017 Laboratorio Apache Storm Storm_HandsOn.pdf
scaletta.txt
Code: Hands-On Storm
Code: DEBS 2015 Grand Challenge (Q1)
9/6/2017
8/6/2017 Data stream processing: sfide
Framework per DSP: Twitter Heron
DSPchallenges.pdf
DSPFrameworks.pdf
22/6/2017
18/6/2017
12/6/2017 Laboratorio Storm Trident

Laboratorio Spark Streaming
StormTrident_HandsOn.pdf
scaletta-storm-trident.txt
Code: Hands-On Storm Trident

SparkStreaming_HandsOn.pdf
scaletta-spark-streaming.txt
Code: Hands-On Spark Streaming
19/6/2017
15/6/2017 Discussione del primo mini-progetto
19/6/2017 DSP: The Placement Problem
Presentazione del secondo progetto
DSPPlacementProblem.pdf
Project2Slides.pdf
19/6/2017
20/6/2017
22/6/2017 Framework per DSP: Flink, Google Cloud Dataflow, Amazon Kinesis Streams vedi lezione dell'8/6

Articoli

I seguenti articoli approfondiscono ed integrano gli argomenti trattati a lezione; la loro lettura è caldamente raccomandata.

Introduzione ai Big Data

Fog Computing

Resource Managament

Storage: Distributed File System

Storage: Database NoSQL e NewSQL

Data Acquisition

MapReduce ed ecosistema di Hadoop

Spark

Data Stream Processing

Link utili

I seguenti link forniscono delle fonti per approfondimenti.


Programma provvisorio

  • Introduction to Big Data: issues and challenges
  • Future reference infrastructure: Fog computing
  • Frameworks for cluster resource management
    • Case studies: Mesos, Kubernetes
  • Data storage: distributed file systems and NoSQL databases
    • Case studies: HDFS, HBase, MongoDB, DynamoDB, Neo4j
    • Lab: HDFS and NoSQL databases
  • Systems for data acquisition
    • Pub/sub, message queues, collection systems
  • Systems for batch processing
    • Case studies: Hadoop, Pig, Hive, Spark
    • Batch processing in the Cloud
    • Lab: Spark
  • Systems for stream processing
    • Case studies: Spark Streaming, Storm, Flink, Heron
    • Stream processing in the Cloud
    • Lab: Storm

Esami

Modalità di esame

  1. 2 mini-progetti assegnati durante il corso:
    • Primo mini-progetto: comunicare a Valeria Cardellini la composizione del gruppo entro venerdì 26 maggio.
      Consegna del codice: entro lunedì 12 giugno 2017.
      Presentazione: Project1Slides.pdf
      Traccia: SABD1617_progetto1.pdf
      Presentazione da parte degli studenti: giovedì 15 giugno a partire dalle 9:30 nella sala riunioni al piano terra dell'edificio di Ingegneria dell'Informazione (stanza n. AT 07).
    • Secondo mini-progetto: comunicare a Valeria Cardellini la composizione del gruppo entro venerdì 30 giugno (la composizione del gruppo può essere diversa rispetto al primo mini-progetto).
      Consegna del codice: entro venerdì 14 luglio 2017.
      Presentazione del progetto: Project2Slides.pdf
      Traccia del progetto: SABD1617_progetto2.pdf
      Presentazione da parte degli studenti: martedì 18 luglio a partire dalle 9:30 in aula B9 edificio Didattica.
    Progetti da svolgere preferibilmente in gruppo composto da 2 oppure 3 studenti (singolarmente se non possibile altrimenti).
  2. Prova orale su tutto il programma del corso.

Appelli

  • I appello sessione estiva
  • Prova orale: mercoledì 12 luglio 2017, ore 9:30, ufficio D1-17.
  • II appello sessione estiva
  • Prova orale: giovedì 20 luglio 2017, ore 11:30, ufficio D1-17.
  • I appello sessione autunnale
  • Prova orale: mercoledì 6 13 settembre 2017, ore 10:00, ufficio D1-17.
  • II appello sessione autunnale
  • Prova orale: mercoledì 20 settembre 2017, ore 10:00, ufficio D1-17.
  • I appello sessione invernale
  • II appello sessione invernale

  •