Distributed computing nel cloud: MapReduce
Il framework MapReduce, presentato come innovazione rivoluzionaria nell'elaborazione di Big Data, è ormai ampiamente diffuso e continua a essere migliorato. Ecco come funziona.
Obiettivi di apprendimento
Contenuto del modulo:
- Identificare il modello di programmazione distribuita sottostante di MapReduce
- Illustrare come sfruttare il parallelismo dei dati con MapReduce
- Identificare l'input e l'output delle attività di mapping e di riduzione
- Definire l'elasticità delle attività ed evidenziarne l'importanza per la pianificazione efficace dei processi
- Illustrare le strategie di pianificazione delle attività di mapping e di riduzione in Hadoop MapReduce
- Descrivere gli elementi dell'architettura YARN e identificare il ruolo di ognuno
- Riepilogare il ciclo di vita di un processo MapReduce in YARN
- Confrontare e contrapporre le architetture e gli allocatori di risorse di YARN e della versione precedente di Hadoop MapReduce
- Illustrare le differenze tra la pianificazione di processi e attività in YARN e nella versione precedente di Hadoop MapReduce
In collaborazione con il dott. Majd Sakr e la Carnegie Mellon University.
Prerequisiti
- Comprendere cos'è il cloud computing, inclusi i modelli di servizio cloud e i provider di servizi cloud comuni
- Conoscere le tecnologie che consentono il cloud computing
- Comprendere le modalità di pagamento e fatturazione dei provider di servizi cloud per il cloud
- Sapere che cosa sono i data center e perché esistono
- Sapere come vengono configurati e attivati i data center e come ne viene effettuato il provisioning
- Comprendere come viene effettuato il provisioning e calcolato il consumo delle risorse cloud
- Avere familiarità con il concetto di virtualizzazione
- Conoscere i diversi tipi di virtualizzazione
- Comprendere la virtualizzazione della CPU
- Comprendere la virtualizzazione della memoria
- Comprendere la virtualizzazione delle funzioni di I/O
- Conoscere i diversi tipi di dati e le modalità di archiviazione
- Avere familiarità con i file system distribuiti e il loro funzionamento
- Avere familiarità con i database NoSQL e l'archiviazione di oggetti, nonché con il loro funzionamento
- Conoscere i concetti della programmazione distribuita e sapere perché è utile per il cloud