Informazioni Generali

Il corso copre un'ampia varietà di argomenti avanzati riguardanti il data intensive computing, inclusi i file system distribuiti, i database NoSQL, l'elaborazione di dati batch e dati streaming ed i sistemi per il machine learning distribuito.

Risultati dell'apprendimento

Principi, paradigmi e tecnologie per la progettazione e gestione di sistemi a larga scala che processano ed analizzano Big Data.

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 del Cloud computing.

Orario delle lezioni

Il corso si tiene nel secondo semestre. Orario valido dal 6/3/2023 al 15/6/2023
  • Lunedì dalle 11:30 alle 13:15, aula C5 edificio didattica
  • Giovedì dalle 11:30 alle 13:15, aula B8 edificio didattica

Classe virtuale

Microsoft Teams: link

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: in aula al termine delle lezioni oppure per appuntamento (contattare via email per concordare giorno e orario).

Matteo Nardelli
E-mail: (è necessario specificare [SABD] nell'oggetto della mail)
Orario di ricevimento: online, da concordare tramite email.



Materiale Didattico

Testi consigliati

Non c'è un libro di testo, in quanto il materiale si basa principalmente su articoli scientifici e documentazione dei framework e tool per Big Data.
Ma se sei interessata/o ad un testo, quelli elencati di seguito coprono una buona parte degli argomenti trattati nel corso:

Slide delle lezioni

Argomento Lucidi Ultima modifica
Organizzazione del corso Organization.pdf 6/3/2023
Introduzione ai Big Data IntroBD.pdf 9/3/2023
Sistemi per storage dei dati Storage_DFS.pdf 9/3/2023
Hands-on Hadoop Distributed File System
Storage_HandsOn_HDFS.pdf
scaletta
Docker Image Repository scripts
16/3/2023
Data store NoSQL Storage_NoSQL.pdf 23/3/2022
Hands-on NoSQL DB: Redis, MongoDB Storage_HandsOn_NoSQL_KVD.pdf
scaletta.txt
scripts_redis.zip
scripts_mongo.zip
2/4/2023
Introduzione a MapReduce e Spark Intro_Hadoop+Spark.pdf 6/4/2023
MapReduce e Apache Hadoop MapReduce&Hadoop.pdf 13/4/2023
Hands-on HBase and Neo4j Storage_HandsOn_NoSQL_CG.pdf
scaletta.txt
scripts_hbase-neo4j.zip
Code: HBase Client
17/4/2023
Database NewSQL e database per serie temporali Storage_NewSQL&TSDB.pdf 20/4/2023
Hands-on InfluxDB Storage_HandsOn_NoSQL_TSDB.pdf
scaletta.txt
scripts_influxdb.zip
20/4/2023
Apache Spark Spark.pdf
Spark_RDD_examples.pdf
15/5/2023
Hands-on Apache Spark and Spark SQL Spark_HandsOn.pdf
Code: Hands-On Spark
11/5/2023
Acquisizione dei dati DataAcquisition.pdf 18/5/2023
Introduzione al Data Stream Processing DSP_Intro.pdf 22/5/2023
Framework per DSP DSP_Frameworks.pdf 1/6/2023
Hands-On Apache Flink Flink_HandsOn.pdf
scaletta.txt
Code: Hands-On Flink
28/05/2023
Data stream processing: sfide DSP_Challenges.pdf 18/6/2023
Deployment a run-time di applicazioni DSP DSP_Research.pdf 18/6/2023
Sistemi per la gestione delle risorse ResourceMgmt.pdf 18/6/2023
Hands-on Apache Spark Streaming
Hands-on Apache Kafka and Kafka Streams
SparkStreaming_HandsOn.pdf
scaletta.txt
Code: Hands-On Spark Streaming

KafkaStreams_HandsOn.pdf
scaletta.txt
Code: Hands-on Kafka Streams
11/6/2023
ML distribuito e federato Distr+FedML.pdf 18/6/2023

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: File System Distribuiti

Storage: Data store NoSQL e NewSQL

MapReduce ed ecosistema di Hadoop

Spark

Data Acquisition

Data Stream Processing

Resource Management

Distributed and Federated Machine Leaning

Video

Video di presentazioni utili per approfondire alcuni argomenti del corso.


Programma

  • 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, MongoDB, HBase, Neo4j, InfluxDB
  • Systems for data acquisition and ingestion: pub/sub, message queues, collection systems
    • Case studies: Kafka, Flume, and NiFi
  • Systems for batch processing
    • Case studies: Hadoop, Spark, and Spark SQL
    • Lab: Hadoop, Spark, Spark SQL
  • Systems for stream processing
    • Case studies: Storm, Flink, Spark Streaming
    • Lab: Flink, Spark Streaming, Kafka Streams
  • Batch and stream processing in the Cloud
  • Frameworks for cluster resource management
    • Case study: Mesos
  • Distributed and federated machine learning
    • Case studies: Spark MLlib, TensorFlow distributed

Esami

Modalità di esame

  1. 2 progetti assegnati durante il corso: il primo su batch processing, il secondo su data stream processing.
    Progetti da svolgere preferibilmente in gruppo composto da 2 o 3 studenti (singolarmente se non possibile altrimenti).
    Le tracce dei progetti sono pubblicate sul canale Teams del corso.
    Discussione del primo progetto: 15 giugno 2023, ore 11:30, aula B8.
    Discussione del secondo progetto: 14 luglio 2023, ore 15:00, aula da comunicare.
  2. Prova orale sul programma del corso.

Appelli

  • I appello sessione estiva
  • Prova orale: venerdì 23 giugno 2023 ore 10:00, aula B7
  • II appello sessione estiva
  • Prova orale: giovedì 20 luglio 2023 ore 10:00, aula B6
  • I appello sessione autunnale
  • Prova orale: venerdì 8 settembre 2023, ore 10:00, aula C5
  • II appello sessione autunnale
  • Prova orale: venerdì 22 settembre 2023, ore 10:00, aula C7
  • I appello sessione invernale

  • II appello sessione invernale