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

  • 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

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

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
  • 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, 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 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

  •