May 222012
 

Già nel dicembre 2011, gli utenti Linux con applicazioni data-intensive avevano gioito in quanto Apache Hadoop aveva raggiunto un traguardo la versione 1.0.0. Diventando un punto di riferimento per il software di calcolo distribuito, questo meraviglioso piccolo programma ha raggiunto ora la versione 1.0.3, ma cosa è Hadoop e come si può beneficiare nell’usarlo?

Progettato con operazioni “scalabili in rete” in mente, Hadoop è in grado di gestire enormi quantità di informazioni, consentendo di elaborare rapidamente ed efficacemente volumi di dati che altri sistemi semplicemente non sono in grado di gestire. Ma questo è solo l’inizio. Hadoop permette anche di mettere in rete questo processo – può distribuire grandi quantità di lavoro su un cluster di macchine, questo permette di gestire carichi di lavoro che un singolo processore semplicemente non può gestire.



In realtà, Hadoop è utilizzato da un numero di importanti giocatori del settore digitale – in particolare, Facebook, Yahoo! e persino Twitter (utilizzandolo per memorizzare ed elaborare tweets). Sembra che Hadoop si stia facendo un nome tra i grandi servizi web,rendendolo il framework ideale per i sistemi con molte informazioni come i social network, motori di ricerca e persino per i database delle grosse compagnie di assicurazioni.
Ma cosa è il calcolo distribuito e perché dovremmo approfittare di tutto ciò che ha da offrire?

Calcolo Distribuito – la strada da seguire ?

La legge di Moore afferma che il numero dei transistor che possono essere utilizzati in un singolo processore raddoppia ogni due anni. Con lo sviluppo del settore hardware del computer che sta rifiutando di rallentare, sembra inevitabile che i processori singoli saranno in grado di gestire volumi molto più grandi di dati. L’invenzione delle CPU multi-threading e multi-core è stato un significativo balzo in avanti verso questo obiettivo, ma il problema è che le altre aree di hardware non stanno tenendo il passo.

Prendete l’umile disco rigido, per esempio. Se si assume una velocità costante intorno a 100MB/sec con quattro canali indipendenti I/O, 4TB di dati richiederebbero circa 10.000 secondi per essere letti – questo è un tempo di caricamento di quasi 3 ore. Anche con i drive che utilizzano lo stato solido ( arrivano in esecuzione ad una velocità di 500MB/sec) ci sarebbe da aspettare un tempo di caricamento di oltre mezz’ora. Utilizzando il calcolo distribuito ed un cluster di 100 macchine, il tempo di caricamento precipita a circa 3 minuti. Ovviamente 4TB è un piccolo esempio, quando si pensa al volume dei dati trattati su base quotidiana da aziende come Facebook e Twitter – in questi casi, il calcolo distribuito è semplicemente l’unico modo per gestire tali compiti.

Perché usare Hadoop?

Hadoop è una grande infrastruttura di calcolo distribuito e mentre è uno strumento utile nel trattamento dei dati su una singola macchina, la sua forza sta nella capacità di scalare, con centinaia o addirittura migliaia di computer per eseguire un singolo task. Cosa c’è di più, Hadoop è ed è sempre stato un lprogetto ibero ed open-source. Ciò significa che, non solo si ottiene la potenza di calcolo distribuito senza costi aggiuntivi per il software, ma è anche costantemente in fase di test, aggiornato e modificato per soddisfare le esigenze dei suoi utenti. Fin dalla sua creazione, Hadoop è stato progettato con enormi quantità di dati in mente. Per dirla semplicemente, centinaia di gigabyte di dati sarebbe un carico leggero per quanto riguarda Hadoop – a seconda delle infrastrutture hardware, è più che capace di movimentazione di terabyte e persino petabyte (1024 TB) di dati. Quindi, se ti stai trovando nella posizione in cui disponi di troppi dati da gestire, Hadoop potrebbe essere la soluzione perfetta.

Hadoop Distributed File System (HDFS)

Naturalmente, per gestire questi grandi volumi di dati, Hadoop non può contare sui metodi esistenti di archiviazione di file. Al contrario, utilizza un proprio file system distribuito che è stato progettato specificamente per fornire high-throughput accesso alle informazioni. Tutti i file in un sistema Hadoop (quando si utilizza come un quadro di calcolo distribuito) vengono memorizzati in modo ridondante su più macchine diverse. Anche se questo può sembrare strano, è una delle caratteristiche più importanti di Hadoop. Quando si utilizzano più computer, c’è un rischio molto più elevato che qualcosa vada storto – più comunemente, la corruzione dei dati. Grazie alla memorizzazione di un file più volte, il HDFS assicura l’integrità dei dati, permettendo così di essere provenienti da diverse macchine in caso di unico esemplare non sono più disponibili.

Con la sua flessibilità e natura open-source di Hadoop, è il framework ideale per costruire avanzati database web così come i processi per gestire tali dati. Poi c’è la miriade di altri progetti Apache, che sono progettati per lavorare mano nella mano con Hadoop – da Avro, un sistema di serializzazione dei dati, a Zookeeper, un servizio di coordinamento per le applicazioni distribuite. Apache Hadoop rende tutta la potenza di calcolo distribuito (in ogni configurazione che si possa immaginare) a disposizione delle masse.

Popular Posts:

flattr this!

 Leave a Reply

(required)

(required)


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>