- 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
Tom White. Hadoop - The Definitive Guide (4th edition). O'Reilly, 2015
Matei Zaharia, Holden Karau, Andy Konwinski, Patrick Wendell. Learning Spark. O'Reilly, 2015
Metodi didattici
Lezioni in aula ed esercitazioni in laboratorio
Modalità di verifica e valutazione dell'apprendimento
Interrogazione orale su tutti i temi trattati e discussione di un elaborato. L'elaborato è da concordarsi con il docente, e può consistere nell'analisi di una banca dati con le tecniche studiate, nella traduzione di un algoritmo di data mining su piattaforma Big Data, o nella valutazione sperimentale di un nuovo strumento del framework Hadoop.
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