81932 - BIG DATA

Scheda insegnamento

Anno Accademico 2017/2018

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 nell’utilizzo 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

Programma/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 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