Politecnico di Torino | |||||||||||||||||||||||||
Anno Accademico 2017/18 | |||||||||||||||||||||||||
01QYDOV, 01QYDBH, 01QYDNG, 01QYDOQ, 01QYDPE Big data: architectures and data analytics |
|||||||||||||||||||||||||
Corso di Laurea Magistrale in Ingegneria Informatica (Computer Engineering) - Torino Corso di Laurea Magistrale in Ict For Smart Societies (Ict Per La Societa' Del Futuro) - Torino Corso di Laurea Magistrale in Ingegneria Matematica - Torino Espandi... |
|||||||||||||||||||||||||
|
|||||||||||||||||||||||||
|
|||||||||||||||||||||||||
Presentazione
Nell’era dei big data i tradizionali sistemi per la gestione e l’analisi dei dati non sono più adeguati. Quindi, al fine di gestire e sfruttare la grande mole di dati eterogenei a disposizione, sono necessari nuovi modelli per i dati, nuovi paradigmi di programmazione, nuovi sistemi informatici e nuove architetture di rete.
Il corso affronta le sfide poste dai big data. In particolare, il corso coprirà le soluzioni usate per acquisire, memorizzare, interrogare e analizzare grandi moli di dati al fine di estrarre conoscenza e informazione utile. Il corso non copre solo gli aspetti di modellazione e analisi dei dati ma anche nuovi paradigmi di programmazione (ad esempio Map Reduce e Spark RDDs) e descrive come possano essere utilizzati per supportare i big data scientists durante l’estrazione di informazione utile dai dati. |
Risultati di apprendimento attesi
Il corso ha l’obiettivo di fornire:
• Conoscenza delle principali caratteristiche delle infrastrutture e dei sistemi distribuiti usati per acquisire e gestire grandi moli di dati (ad esempio Hadoop e Spark) • Capacità di scrivere programmi distribuiti per analizzare grandi moli di dati tramite nuovi paradigmi di programmazione: MapReduce e Spark Resilient Distributed Dataset • Conoscenza delle basi di dati (relazionali e non) per la memorizzazione dei big data |
Prerequisiti / Conoscenze pregresse
Competenze di programmazione a oggetti, conoscenza del linguaggio Java e conoscenza dei concetti fondamenti delle basi di dati (modello relazionale e linguaggio SQL).
|
Programma
Lezioni in aula (45 ore)
• Introduzione: caratteristiche dei big data, problemi e opportunità (3 ore). • Il sistema Hadoop e il suo ecosistema: infrastruttura e componenti base (3 ore). • Programmazione secondo il paradigma Map Reduce (10.5 ore). • Spark: l’architettura di Spark e la programmazione basata sui Resilient Distributed Dataset (13.5 ore). • Spark Steaming: analisi di dati streaming (4.5 ore). • Librerie di data mining e machine learning per big data: MLlib (4.5 ore) • Basi di dati per i Big data: modelli dei dati non relazionali, progettazione di basi di dati non relazionali (ad esempio HBase), linguaggi di interrogazione (6 ore). Laboratori (15 ore) • Sviluppo di applicazioni tramite l’uso di Hadoop e Spark (15 ore). |
Organizzazione dell'insegnamento
Il corso consta di lezioni ed esercitazioni in aula (45 ore) e di attività di laboratorio (15 ore). Le esercitazioni in laboratorio sono relative a principali argomenti del corso (Map Reduce, Spark e MLlib). L'attività di laboratorio permette di sperimentare l'uso dei prodotti open-source più diffusi.
|
Testi richiesti o raccomandati: letture, dispense, altro materiale didattico
Testi di riferimento:
• Tom White. Hadoop, The Definitive Guide. (Third edition). O’Reilly, Yahoo Press, 2012. • Holden Karau, Andy Konwinski, Patrick Wendell, Matei Zaharia. Learning Spark: Lightning-Fast Big Data Analytics. O’Reilly, 2015. • Sandy Ryza, Uri Laserson, Sean Owen, Josh Wills. Advanced Analytics with Spark. O’Reilly, 2014. Sono disponibili copie dei lucidi utilizzati nelle lezioni, esempi di scritti di esame ed esercizi, e i manuali per le esercitazioni di laboratorio. Tutto il materiale didattico è scaricabile da un sito web o attraverso il portale. |
Criteri, regole e procedure per l'esame
L'esame è costituito da una prova scritta della durata di 2 ore.
La prova scritta comprende due parti: - 2 esercizi di programmazione (programmazione basata su MapReduce e RDD) da risolvere utilizzando il linguaggio di programmazione Java (27 punti totali) - 2 domande a risposta multipla, relative a tutti gli argomenti trattati durante il corso (4 punti totali) La valutazione degli esercizi di programmazione si basa sulla correttezza della soluzione proposta e sulla sua efficienza. Le domande a risposta multipla sono utilizzate per valutare la comprensione dei concetti teorici presentati durante il corso. Durante la prova gli studenti possono consultare testi e appunti. L’esame è considerato superato se la votazione conseguita durante la prova scritta è maggiore o uguale a 18. |
Orario delle lezioni |
Statistiche superamento esami |
|