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

Il corso si tiene nel secondo semestre. Orario valido dal 4/3/2019 al 15/6/2019 (secondo semestre)
  • Lunedì dalle 11:30 alle 13:15, aula C5 edificio didattica
  • Giovedì dalle 11:30 alle 13:15, aula B12 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: venerdì dalle 9:30 alle 11:00 in ufficio.

Fabiana Rossi
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 5 luglio 2019 - Disponibili le date degli appelli della sessione autunnale (vedi Appelli).
  • 18 giugno 2019 - Disponibile la traccia del secondo progetto (SABD1819_progetto2.pdf).
  • 7 giugno 2019 - La lezione di lunedì 10 giugno non si terrà.
    Le lezioni termineranno giovedì 13 giugno.
  • 24 maggio 2019 - La lezione di lunedì 27 maggio non si terrà per la sospensione delle attività didattiche in occasione delle elezioni politiche europee del 26 maggio.
  • 23 maggio 2019 - Aggiornate le slide DSP_Frameworks.pdf
  • 5 maggio 2019 - Aggiunte nella traccia alcune precisazioni alle query 1 e 3 del primo progetto.
  • 1 maggio 2019 - Disponibile la traccia del primo progetto (SABD1819_progetto1.pdf).
  • 29 aprile 2019 - Aggiunti i lucidi da 55 in poi in Spark.pdf.
  • 11 aprile 2019 - La lezione di giovedì 2 maggio prevista alle 11:30 sarà posticipata dalle 16:00 alle 17:45 in aula C3.
  • 11 aprile 2019 - Martedì 23 aprile dalle 16:00 alle 17:45 si terrà in aula C5 la lezione di Laboratorio su Apache Spark.
  • 28 marzo 2019 - Aggiunto il materiale della lezione di Laboratorio del 28 marzo.
    Suggerimento: completare per esercizio il tutorial in HBase.
  • 26 marzo 2019 - Per la lezione di Laboratorio di giovedì 28 marzo, si consiglia di scaricare in anticipo le immagini Docker di HBase e Neo4j:
    docker pull harisekhon/hbase:1.4
    docker pull neo4j:3.0
  • 26 marzo 2019 - Aggiunti i lucidi da 105 in poi in Storage_NoSQL.pdf.
  • 8 marzo 2019 - Al corso è stata assegnato un grant per Google Cloud Platform Education che consentirà agli studenti di sperimentare gratuitamente i servizi Google Cloud Platform per Big Data.
  • 4 marzo 2019 - Per la lezione di giovedì 14 marzo, si consiglia di scaricare in anticipo le seguenti immagini Docker.
  • 27 febbraio 2019 - Il corso avrà inizio lunedì 4 marzo 2019 alle ore 11:30 in aula C5.

Materiale Didattico

Testi consigliati

Calendario e lucidi delle lezioni

Giorno Argomento Lucidi Ultima modifica
4/3/2019 Organizzazione del corso
Introduzione ai Big Data
Organization.pdf
IntroBD.pdf
4/3/2019
4/3/2019
7/3/2019 Sistemi per la memorizzazione dei dati: introduzione, file system distribuiti Storage_DFS.pdf 11/3/2019
11/3/2019 Sistemi per la memorizzazione dei dati: Alluxio
Data store NoSQL: introduzione, data store chiave-valore e orientati ai documenti
vedi lezione precedente
Storage_NoSQL.pdf
 
26/3/2019
14/3/2019 Hands-on Hadoop Distributed File System
Hands-on NoSQL Data Store: Redis e MongoDB
Storage_HandsOn_HDFS.pdf
scaletta.txt
Hadoop Docker image

Storage_HandsOn_NoSQL_KVD.pdf
scaletta.txt

script.zip
14/3/2019
18/3/2019 Data store NoSQL: data store family-column e database a grafo
Case study: Dynamo e Bigtable
vedi lezione dell'11/3
21/3/2019 Data store NoSQL: persistenza poliglotta e database multi-model
Case study: Google Cloud Bigtable, Cassandra
vedi lezione dell'11/3
25/3/2019 Database NewSQL e database per serie temporali Storage_NewSQL&TSDB.pdf 26/3/2019
28/3/2019 Hands-on NoSQL Data Store: HBase e Neo4j Storage_HandsOn_NoSQL_CG.pdf
scaletta.txt
Code and Scripts: HBaseClient and Neo4j
28/3/2019
1/4/2019 Map Reduce con esempi MapReduce&Hadoop.pdf 4/4/2019
4/4/2019 k-means con MapReduce, Hadoop vedi lezione precedente
8/4/2019 Hadoop: ottimizzazioni
Apache Spark: introduzione e architettura
vedi lezione dell'1/4
Spark.pdf

29/4/2019
11/4/2019 Apache Spark: RDD vedi lezione precedente
15/4/2019 Hands-on MapReduce: Design Patterns MapReduce_HandsOn_DesignPatterns.pdf
scaletta.txt
Code: MapReduceDesignPatterns
15/4/2019
18/4/2019 Apache Spark: persistenza, execution engine, Spark SQL
Hadoop ecosystem: Pig
vedi lezione dell'8/4
HadoopEcosystem.pdf
 
29/4/2019
23/4/2019 Hands-on Apache Spark and Spark SQL Spark_HandsOn.pdf
Code: Hands-On Spark
23/4/2019
29/4/2019 Presentazione del primo progetto
Hadoop ecosystem: Hive, Oozie
Acquisizione dei dati: introduzione, Flume, Sqoop
Project1Slides.pdf
vedi lezione del 18/4
DataAcquisition.pdf
5/5/2019
 
11/5/2019
2/5/2019 Introduzione al Data Stream Processing DSP_Intro.pdf 2/5/2019
6/5/2019 Acquisizione dei dati: Kafka
Framework per DSP: Apache Storm
vedi lezione del 29/4
DSP_Frameworks.pdf
 
23/5/2019
9/5/2019 Data stream processing: sfide DSP_Challenges.pdf 16/5/2019
13/5/2019 Framework per DSP: Apache Storm, Twitter Heron, Apache Flink vedi lezione del 9/5
16/5/2019 Hands-On Apache Storm Storm_HandsOn.pdf
scaletta.txt
Code: Hands-On Storm
16/5/2019
20/5/2019 Framework per DSP: Apache Flink, architetture Lambda vedi lezione del 9/5
23/5/2019 Framework per DSP: Apache Samza, servizi cloud
ACM DEBS 2016 Grand Challenge (slide a cura di G. Marciani, M. Piu, M. Porretta)
vedi lezione del 9/5
UTV@DEBS2016GC.pptx

24/5/2019
26/5/2019 Placement ed adattamento a run-time di applicazioni DSP DSP_Research.pdf 13/6/2019
30/5/2019
31/5/2019
Discussione del primo mini-progetto
3/6/2019 Hands-on Apache Kafka Streams
Hands-on Apache Spark Streaming
KafkaStreams_HandsOn.pdf
scaletta.txt
Docker compose: Kafka cluster
Kafka Docker image
Code: Hands-on Kafka Streams

SparkStreaming_HandsOn.pdf
scaletta.txt
Code: Hands-On Spark Streaming
3/6/2019
6/6/2019 Sistemi per la gestione delle risorse: introduzione, Mesos ResourceMgmt.pdf 13/6/2019
13/6/2019 Sistemi per la gestione delle risorse: DRF, YARN
ACM DEBS 2018 Grand Challenge
Fog Computing
Presentazione del secondo mini-progetto
vedi lezione del 6/6
DEBS2018GC.pdf
FogComputing.pdf
Project2Slides.pdf


19/6/2019
19/6/2019

Articoli

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

When I talk to researchers, when I talk to people wanting to engage in entrepreneurship, I tell them that if you read research papers consistently, if you seriously study half a dozen papers a week and you do that for two years, after those two years you will have learned a lot. This is a fantastic investment in your own long term development. (Andrew Ng, Inside The Mind That Built Google Brain: On Life, Creativity, And Failure)

Introduzione ai Big Data

Storage: Distributed File System

Storage: Data store NoSQL e NewSQL

MapReduce ed ecosistema di Hadoop

Spark

Data Acquisition

Data Stream Processing

Resource Managament

Fog Computing

Video

Video di presentazioni utili per approfondire alcuni argomenti del corso.

Altri link utili

I seguenti link forniscono delle fonti per approfondimenti.


Programma provvisorio

  • Introduction to Big Data: issues and challenges
  • Data storage: distributed file systems, NoSQL data stores, NewSQL databases, time series databases
    • Case studies: HDFS, Dynamo, Redis, MongoDB, Bigtable, HBase, Cassandra, and Neo4j
    • Lab: HDFS, Redis, HBase, Neo4j
  • Systems for data acquisition and ingestion: pub/sub, message queues, collection systems
    • Case studies: Kafka, Flume, and Sqoop
    • Lab: Kafka
  • Systems for batch processing
    • Case studies: Hadoop, Pig, Hive, Spark, and Spark SQL
    • Lab: Hadoop, Spark, Spark SQL
  • Systems for stream processing
    • Case studies: Spark Streaming, Storm, Flink, Heron
    • Lab: Storm and Spark Streaming
  • Batch and stream processing in the Cloud
  • Frameworks for cluster resource management
    • Case studies: Mesos, YARN, Kubernetes
  • The new reference infrastructure: Fog computing

Esami

Modalità di esame

  1. 2 mini-progetti assegnati durante il corso.
    Progetti da svolgere preferibilmente in gruppo composto da 2 o 3 studenti (singolarmente se non possibile altrimenti).
    • Primo mini-progetto: comunicare a Valeria Cardellini entro venerdì 10 maggio la composizione del gruppo.
      Consegna del codice: entro venerdì 24 maggio 2019.
      Slide: Project1Slides.pdf
      Traccia: SABD1819_progetto1.pdf (aggiornata al 5/5/2019)
      Presentazioni da parte degli studenti: giovedì 30 maggio e venerdì 31 maggio.
    • Secondo mini-progetto: comunicare a Valeria Cardellini entro lunedì 24 giugno la composizione del gruppo (che può essere diversa rispetto al primo mini-progetto).
      Consegna del codice: entro venerdì 12 luglio 2019.
      Slide: Project2Slides.pdf
      Traccia: SABD1819_progetto2.pdf
      Presentazione da parte degli studenti: lunedì 15 luglio e martedì 16 luglio.
  2. Prova orale su tutto il programma del corso.

Appelli

  • I appello sessione estiva
  • Prova orale: lunedì 24 giugno 2019, ore 12:00, ufficio D1-17.
  • II appello sessione estiva
  • Prova orale: giovedì 18 luglio 2019, ore 9:00, ufficio D1-17.
  • I appello sessione autunnale
  • Prova orale: giovedì 5 settembre 2019, ore 9:30, ufficio D1-17.
  • II appello sessione autunnale
  • Prova orale: venerdì 20 settembre 2019, ore 9:00, ufficio D1-17.
  • I appello sessione invernale
  • II appello sessione invernale