- Docente: Enrico Gallinucci
- Crediti formativi: 6
- SSD: ING-INF/05
- Lingua di insegnamento: Italiano
- Moduli: Enrico Gallinucci (Modulo 1) Andrea Mordenti (Modulo 2)
- Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
- Campus: Cesena
- Corso: Laurea Magistrale in Ingegneria e scienze informatiche (cod. 8614)
Conoscenze e abilità da conseguire
Al termine del corso lo studente: - Conosce gli ambiti applicativi in cui utilizzare le tecnologie dei Big Data e le relative problematiche - Conosce le architetture hardware e software che sono state proposte per la loro gestione - Conosce le tecniche per la memorizzazione, utilizza i linguaggi e i paradigmi di programmazione adottati in questo tipo di sistemi - Conosce le metodologie di progettazione per le diverse tipologie di applicazioni in ambito Big Data Acquisisce competenze pratiche nellutilizzo delle diverse tecnologie mediante attività di laboratorio e di progetto. In particolare le principali tecnologie utilizzate in laboratorio saranno i DBMS NoSQL e la piattaforma Hadoop: Hive, Spark, Tez, Dremel, Giraph, Storm, Mahout, and Open R
Contenuti
Per aggiornamenti puntuali sulle attività del corso, iscriversi alla lista di distribuzione enrico.gallinucci.bigdata
1. Introduzione al corso e ai Big Data: cosa sono e come sfruttarli
2. Cluster computing per gestire i Big Data
- Architetture per il calcolo parallelo
- Il framework Apache Hadoop ed i suoi moduli (HDFS, Yarn)
- Strutture dati specifiche per Hadoop (Apache Parquet)
3. Il paradigma MapReduce: principi di funzionamento, limitazioni, progettazione di algoritmi
4. Il sistema Apache Spark
- Architettura, strutture dati, principi di funzionamento
- Partizionamento dei dati e shuffling
- Ottimizzazione del calcolo
5. SQL su Big Data con Spark SQL
6. Data streaming
- L'architettura per gestire streaming di dati
- Algoritmi approssimati nel contesto streaming
7. Big Data Analysis: un caso di studio completo
8. Traduzione di un problema di Data Mining su piattaforma Big Data
Testi/Bibliografia
Testi principali:
- Tom White. Hadoop - The Definitive Guide (4th edition). O'Reilly, 2015
- Matei Zaharia, Holden Karau, Andy Konwinski, Patrick Wendell. Learning Spark. O'Reilly, 2015
- Andrew G. Psaltis. Streaming Data - Understanding the real-time pipeline. Manning, 2017
Altri testi e riferimenti saranno segnalati nel corso delle lezioni.
Metodi didattici
Lezioni frontali in aula ed esercitazioni guidate in laboratorio.
Modalità di verifica e valutazione dell'apprendimento
L'esame prevede un'interrogazione orale su tutti i temi trattati e la discussione di un elaborato.
L'elaborato (da concordarsi con il docente) consiste nell'identificazione di una banca dati a scelta (che sia sufficientemente grande), nella definizione di un'applicazione che analizzi tali dati (sfuttando le tecniche apprese durante il corso) e nella stesura di una breve relazione. Possono costituirsi gruppi fino a 2 persone. L'elaborato dà diritto ad un punteggio da 0 a 4 punti, che si andrà a sommare a quello dell'orale. Soluzioni alternative per l'elaborato (ad esempio: traduzione di un algoritmo di data mining su piattaforma Big Data, valutazione sperimentale di un nuovo strumento del framework Hadoop) possono essere discusse col docente su richiesta.
Strumenti a supporto della didattica
Le esercitazioni in laboratorio verranno svolte su un cluster virtuale di 10 nodi, pre-configurato con la distribuzione Cloudera Express. Verrà utilizzato un client SSH per collegarsi al cluster e interagire con i software installati (principalmente Apache Hadoop e Apache Spark).
Orario di ricevimento
Consulta il sito web di Enrico Gallinucci
Consulta il sito web di Andrea Mordenti