Visualizzazione post con etichetta HDFS. Mostra tutti i post
Visualizzazione post con etichetta HDFS. Mostra tutti i post

mercoledì 1 aprile 2015

Quale Storage per Hadoop ?

Hadoop è diventato oggi molto popolare, perché rende l'analisi di grandi dati semplice ed economica: basta avere un cluster di server e utilizzare i loro processori come nodi di elaborazione per estrarre i dati critici, mentre i loro dischi interni (DAS) operano come nodi di storage a basso costo.

Il vantaggio di quest’architettura è di avere storage vicino alle CPU, senza la necessità quindi di pescare i dati dall’esterno, ed è possibile aggiungere più spazio di archiviazione (e più potenza di elaborazione) solo con l'aggiunta di nodi server economici con unità SATA a basso costo.
L’ Hadoop Distributed  File System  (HDFS) si assume la responsabilità di organizzare e rendere disponibile storage. Per aggiungere un elemento di protezione dei dati, fault tolerance e resilienza al cluster Hadoop, HDFS triplica tutti i dati: una copia viene effettuata e memorizzata su uno storage node diverso nello stesso rack, e l'altro inviato a un altro storage node su un altro rack .
Questo approccio presenta vantaggi e svantaggi. La triplice copia del dato è semplice ed efficace, ma quando si utilizzano grandi quantità di dati può portare ad enormi volumi.  La buona notizia è che se un disco si guasta basta semplicemente collegarne uno di nuovo e si ritorna immediatamente allo stato normale - non c'è ricostruzione RAID ed il carico elaborativo per fornire questo tipo di protezione dei dati è minimo.

venerdì 22 novembre 2013

Hadoop: di cosa si tratta ?

File:Hadoop logo.svg

Cos'è Hadoop ?


La crescita impressionante dei dati osservata negli ultimi anni, e destinata a proseguire nel futuro, ha fatto nascere molti progetti indirizzati a trovare delle soluzioni il più possibile semplici ed economiche per:

  1. Archiviare le informazioni
  2. Eseguire delle elaborazioni su moli di dati fino a poco tempo fa impensabili (decine di Petabytes e più). 

Poiché la gran parte delle informazioni oggi generate è di tipo non strutturato (files), è in questa direzione che molti dei progetti si sono mossi e tra questi anche Hadoop.

Hadoop nasce come progetto per l'analisi distribuita di grandi insiemi di dati attraverso un semplice modello di programmazione.  L'architettura, realizzata in Java, permette di poter scalare da pochi server fino a migliaia di sistemi: ogni server contribuisce con le proprie risorse di calcolo e la propria capacità di memorizzare i dati, e quindi aggiungendo server, chiamati anche "nodi", è possibile far crescere un sistema Hadoop in modo quasi lineare. Benché non vi siano restrizioni specifiche per i nodi, di norma vengono utilizzati dei sistemi x86 standard, il che permette di poter tenere sotto controllo i costi complessivi della soluzione e allo stesso tempo di beneficiare della crescita in termini computazionali di queste architetture.

L'alta affidabilità, e dunque la protezione dei dati, viene realizzata non basandosi sulle caratteristiche hardware dei server, ma bensì a livello software: sono le librerie di Hadoop che si occupano di identificare se e quali componenti presentano un malfunzionamento, ed intervenendo per ripristinare le operazioni (ad esempio creando una nuova copia dei dati contenuti in un server). E' evidente che nella scala dei Petabytes le soluzioni di backup tradizionali non sono utilizzabili, e quindi è proprio la distribuzione dei dati su nodi differenti la chiave per salvaguardare le informazioni anche di fronte ad un guasto di uno dei nodi (Hadoop adotta come standard la scrittura dello stesso dato in tre locazioni differenti).

Le due componenti fondamentali di Hadoop sono quindi
  • Il sistema di gestione distribuita dei dati: l'Hadoop Distributed File System (HDFS)
  • Il sistema di elaborazione parallela dei dati: MapReduce
A fianco a queste componenti fondamentali si trovano altri moduli che aggiungono ulteriori funzionalità alla piattaforma: citiamo a titolo di esempio HBase,  un database distribuito per la gestione strutturata di dati sotto forma di tabelle di grandi dimensioni, e Hive, un modulo pensato per il datawarehousing che rende possibile interagire con i dati di Hadoop con un interfaccia SQL-like. I moduli addizionali si collocano "sopra" HDFS e MapReduce, che sono sempre presenti come fondamenta dell'architettura: ecco quindi che i dati strutturati di HBase sono memorizzati come files in HDFS e le query SQL di Hive sono eseguite da MapReduce.