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 5/3/2018 al 16/6/2018 (secondo semestre)
  • Lunedì dalle 9:30 alle 11:15, aula B12 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: 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 28 giugno 2018 - Disponibili le date per gli appelli della sessione autunnale (vedi Appelli).
  • 11 giugno 2018 - Disponibile i lucidi della presentazione del secondo progetto (Project2Slides.pdf) e la traccia del primo progetto (SABD1718_progetto2.pdf).
  • 11 giugno 2018 - Aggiunti i lucidi da 82 in poi in ResourceMgmt.pdf.
  • 31 maggio 2018 - Le presentazioni del primo mini-progetto si terranno giovedì 7 giugno in aula C3 dalle ore 9:30 e in aula B12 dalle ore 11:30.
  • 25 maggio 2018 - Aggiunti i lucidi da 37 in poi in DSP_Frameworks.pdf.
  • 7 maggio 2018 - Disponibile i lucidi della presentazione del primo progetto (Project1Slides.pdf) e la traccia del primo progetto (SABD1718_progetto1.pdf).
  • 7 maggio 2018 - Aggiunti i lucidi da 55 in poi in Spark.pdf.
  • 30 aprile 2018 - Venerdì 18 maggio alle ore 18:00 si terrà l'ACM Learning Webinar "Journey to a Real-Time Enterprise", tenuto da Neha Narkhede, co-creatrice di Apache Kafka. Il seminario è gratuito e non richiede l'iscrizione all'ACM; registrandosi vi è anche la possibilità di poterlo seguire successivamente.
  • 18 aprile 2018 - Venerdì 20 aprile alle ore 10:00 in sala Riunioni (stanza AT 07) presso l'edificio di Ingegneria dell’Informazione, il prof. Yongluan Zhou terrà il seminario "Fast Recovery of Correlated Failures in Distributed Stream Processing Engines".
  • 13 aprile 2018 - Aggiunti i lucidi da 51 in poi in MapReduce&Hadoop.pdf.
  • 28 marzo 2018 - Per la lezione di giovedì 29 marzo, si consiglia di scaricare in anticipo le immagini Docker di HBase e Neo4j:
    docker pull harisekhon/hbase
    docker pull neo4j
  • 26 marzo 2018 - Modificati i lucidi 71, 72 e 73 ed aggiunti i lucidi da 92 in poi in Storage_NoSQL.pdf
  • 22 marzo 2018 - Aggiunti i lucidi da 39 in poi in Storage_NoSQL.pdf
  • 16 marzo 2018 - Per seguire al meglio la lezione di lunedì 19 marzo, si consiglia di scaricare in anticipo le seguenti immagini Docker:
    docker pull matnar/hadoop
    docker pull sickp/alpine-redis
    docker pull mongo
    (è necessario aver pre-installato Docker)
  • 12 marzo 2018 - Martedì 13 marzo alle ore 10:00 in aula C11, il Dr. Stefano Iannucci terrà il seminario dal titolo "Model-Based Autonomic Security Management for Distributed Systems".
  • 10 marzo 2018 - Per la registrazione al corso, usare Delphi.
  • 2 marzo 2018 - Il corso avrà inizio giovedì 8 marzo 2018, a causa della sospensione delle attività didattiche prevista per il 5 marzo.

Materiale Didattico

Testi consigliati

Calendario e lucidi delle lezioni

Giorno Argomento Lucidi Ultima modifica
8/3/2018 Organizzazione del corso
Introduzione ai Big Data
Organization.pdf
IntroBD.pdf
10/3/2018
10/3/2018
12/3/2018 Sistemi per la memorizzazione dei dati: introduzione, file system distribuiti Storage_DFS.pdf 15/3/2018
15/3/2018 Data store NoSQL: introduzione, data store chiave-valore e orientati ai documenti Storage_NoSQL.pdf 26/3/2018
19/3/2018 Laboratorio Hadoop Distributed File System
Laboratorio NoSQL Data Store: Redis e MongoDB
Storage_HandsOn_HDFS.pdf
scaletta.txt
Hadoop Docker image

Storage_HandsOn_NoSQL_KVD.pdf
scaletta.txt

script.zip
19/3/2018
22/3/2018 Data store NoSQL: data store family-column e database a grafo
Case study: Dynamo e Bigtable
vedi lezione del 15/3
26/3/2018 Data store NoSQL: Cassandra, Neo4j, prestazioni, persistenza poliglotta vedi lezione del 15/3
29/3/2018 Laboratorio NoSQL Data Store: HBase e Neo4j Storage_HandsOn_NoSQL_CG.pdf
scaletta.txt
Code: HBaseClient
script.zip
30/3/2018
5/4/2018 Database NewSQL
Search platforms and time series databases
Storage_NewSQL.pdf
Search&TSDB.pdf
7/4/2018
7/4/2018
9/4/2018 Map Reduce con esempi MapReduce&Hadoop.pdf 13/4/2018
13/4/2018 Hadoop
Acquisizione dei dati: introduzione
vedi lezione precedente
DataAcquisition.pdf

22/4/2018
16/4/2018 Laboratorio MapReduce: Design Patterns MapReduce_HandsOn_DesignPatterns.pdf
scaletta.txt
Code: MapReduceDesignPatterns
17/4/2018
19/4/2018 Acquisizione dei dati: Kafka, Flume, Sqoop vedi lezione del 13/4
23/4/2018 Hadoop ecosystem: Pig, Hive HadoopEcosystem.pdf 26/4/2018
26/4/2018 Hadoop ecosystem: Oozie
Apache Spark: introduzione e architettura
vedi lezione precedente
Spark.pdf

7/5/2018
30/4/2018 Apache Spark: API RDD, persistenza vedi lezione precedente
3/5/2018 Laboratorio Apache Spark Spark_HandsOn.pdf
Code: Hands-On Spark
3/5/2018
7/5/2018 Apache Spark: execution engine, Spark SQL
Presentazione del primo progetto
Data stream processing: introduzione
vedi lezione del 26/4
Project1Slides.pdf
DSP_Intro.pdf

7/5/2018
13/5/2018
10/5/2018 Data stream processing: introduzione
Framework per DSP: Apache Storm
vedi lezione precedente
DSP_Frameworks.pdf

25/5/2018
14/5/2018 Data stream processing: sfide DSP_Challenges.pdf 16/5/2018
17/5/2018 Framework per DSP: Twitter Heron, Apache Flink vedi lezione del 10/5
21/5/2018 Laboratorio Apache Storm Storm_HandsOn.pdf
scaletta.txt
Code: Hands-On Storm
Code: DEBS 2015 Grand Challenge (Q1)
21/5/2018
24/5/2018 Framework per DSP: Apache Samza, servizi cloud
Placement di applicazioni DSP
vedi lezione del 10/5
DSP_Placement.pdf

10/6/2018
28/5/2018 Laboratorio Apache Kafka Streams
Laboratorio Apache Spark Streaming
KafkaStreams_HandsOn.pdf
Docker compose: Kafka cluster
Kafka Docker image
Code: Hands-on Kafka Streams

SparkStreaming_HandsOn.pdf
scaletta.txt
Code: Hands-On Spark Streaming
28/5/2018
31/5/2018 Sistemi per la gestione delle risorse: introduzione, Mesos ResourceMgmt.pdf 5/6/2018
4/6/2018 Sistemi per la gestione delle risorse: DRF, YARN, Borg vedi lezione precedente
7/6/2018 Discussione del primo mini-progetto
11/6/2018 Sistemi per la gestione delle risorse: Kubernetes
Fog computing
Presentazione del secondo mini-progetto
vedi lezione del 31/5
FogComputing.pdf
Project2Slides.pdf

11/6/2018
11/6/2018

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

Data Acquisition

Spark

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, and NewSQL databases
    • Case studies: HDFS, Dynamo, Redis, MongoDB, Bigtable, HBase, Cassandra, and Neo4j
    • Lab: HDFS, NoSQL data stores, graph databases
  • Search platforms and time series databases
  • 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, and Spark
    • Lab: Hadoop and Spark
  • 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 lunedì 21 maggio la composizione del gruppo e l'eventuale interesse ad usare il grant per Google Cloud Platform.
      Consegna del codice: entro venerdì 1 giugno 2018.
      Presentazione: Project1Slides.pdf
      Traccia: SABD1718_progetto1.pdf
      Presentazione da parte degli studenti: giovedì 7 giugno a partire dalle 9:30 in aula C3 e dalle 11:30 in aula B12.
    • Secondo mini-progetto: comunicare a Valeria Cardellini entro giovedì 21 giugno la composizione del gruppo (che può essere diversa rispetto al primo mini-progetto) e l'eventuale interesse ad usare il grant per Google Cloud Platform.
      Consegna del codice: entro venerdì 6 luglio 2018.
      Presentazione del progetto: Project2Slides.pdf
      Traccia del progetto: SABD1718_progetto2.pdf
      Presentazione da parte degli studenti: mercoledì 11 luglio.
  2. Prova orale su tutto il programma del corso.

Appelli

  • I appello sessione estiva
  • Prova orale: mercoledì 4 luglio 2018, ore 11:30, ufficio D1-17.
  • II appello sessione estiva
  • Prova orale: giovedì 19 luglio 2018, ore 9:30, ufficio D1-17.
  • I appello sessione autunnale
  • Prova orale: mercoledì 5 settembre 2018, ore 9:30, ufficio D1-17.
  • II appello sessione autunnale
  • Prova orale: mercoledì 19 settembre 2018, ore 9:30, ufficio D1-17.
  • I appello sessione invernale
  • II appello sessione invernale