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 22 maggio 2017 - Aggiunti i lucidi da 40 in poi in Spark.pdf.
  • 19 maggio 2017 - Disponibili 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

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

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
    • Secondo mini-progetto: assegnato ad inizio giugno 2017, da consegnare entro lunedì 10 luglio 2017.
    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
  • II appello sessione estiva
  • I appello sessione autunnale
  • II appello sessione autunnale
  • I appello sessione invernale
  • II appello sessione invernale

  •