Hadoop, il framework open source per i big data

I dati non strutturati sono raccolti in file di dimensioni molto maggiori di quelle preomogeneizzate dei dati strutturati. Gestire i big, unstructured data non è per forza una questione da data scientist, ma le idee chiare e un approccio non convenzionale aiutano molto.
L'elaborazione di molti file di grandi dimensioni è oggi un problema per le tradizionali architetture, centralizzate o di rete.

Semplicemente non ci sono sistemi di memorizzazione sufficientemente capaci, né sistemi di elaborazione sufficientemente potenti, per i data center gestiti in modalità classica. Ciascun file di grandi dimensioni va spezzato in blocchi più piccoli, suddiviso tra nodi di processo che vengono elaborati singolarmente, sommando i risultati.

Questa operazione tradizionalmente richiederebbe il trasferimento dei blocchi di dati verso il sistema di processo. La gran mole di dati richiederebbe un tempo di elaborazione molto lungo.
Una semplice osservazione però ha ribaltato il paradigma: i dati occupano tanta memoria, mentre il software di elaborazione è di dimensioni minime.

Anziché portare i dati da un processore che esegue il software centralmente, è meglio suddividere i dati su tanti nodi di elaborazione e portare il software su ciascuno dei nodi, riportando indietro solo i risultati. Trasferire software e risultati è molto conveniente in termini di velocità di elaborazione: lo è tanto più, quanto meno strutturati sono i dati da elaborare.
Questa spiegazione è stata pensata da Mike Gualtieri, Principal Analyst di Forrester, per spiegare Hadoop ai non tecnici.

Cos'è Hadoop?
Hadoop è un'infrastruttura distribuita open source sviluppata sotto l'egida della Apache Software Foundation per l'elaborazione di big data. Il suo file system elabora a lotti molti file di dimensioni tali da non essere gestibili tradizionalmente: si parla di migliaia di nodi e di petabyte (1 PB = 1M GB) di dati. È stato creato nel 2005 da Doug Cutting e Mike Cafarella; Cutting lavorava in Yahoo, azienda che è uno dei maggiori contributors. È ispirato da alcune componenti di Google, in particolare il Google file system e l'approccio MapReduce. Ha preso grande importanza, in particolare, dalla versione 2.0 dell'ottobre 2013.
Ad oggi, oltre che da Yahoo!, Hadoop è stato adottato da Facebook, Twitter, Ebay, Spotify, Linkedin, Ibm e molti altri.
Hadoop è un framework open source, ma anche un ecosistema di svariate decine di applicazioni, che permette di immagazzinare ed elaborare file molto grandi, i cosiddetti big data. Non compete direttamente con soluzioni tradizionali quali Ibm DB2 o Oracle, anche se in alcune applicazioni può esistere il dubbio su quale strada scegliere.

Le quattro componenti
La parte di memorizzazione viene affidata all’Hdfs, l’Hadoop Distributed File System. L’elaborazione è curata da MapReduce, a sua volta un framework che si occupa di mappare i nodi sui quali portare il software di elaborazione, riconducendo (reducing) i risultati in un unico luogo fisico.
Tutte le componenti sono scritte pensando che l'hardware prima o poi funziona male, quindi il software deve prevederlo e farsene carico.
I componenti di base del framework sono quattro:

  • Hadoop Common, che comprende le librerie e le utility comuni a tutti i sistemi;
  • Il file system Hdfs;
  • Hadoop Yarn (Yet Another Resource Negotiator), il framework per la scrittura di scheduler. In base alle applicazioni da eseguire, lo scheduler programma le componenti che gestiscono e pianificano le risorse e ne supervisiona il corretto funzionamento;
  • MapReduce, un modello di programmazione per elaborazione su larga scala. Nella versione attuale si parla di MR2 (Map Resource 2), che gira grazie a yarn secondo un meccanismo più avanzato e solido del vecchi MapReduce, oggi detto MR1.

Va detto che Hdsf non è l'unico file system oggi supportato, anzi. Oltre ai grandi sistemi quali Amazon S3 e Microsoft Azure (Wasb, Windows Azure Storage Blobs) troviamo il classico Ftp e (in sola lettura) l'Http(s).
Molte altre aziende hanno discusso implementazioni particolari: Ibm per il General Parallel File System, Hp per l'Ibrix, ma anche Parascale, Appistry, MapR e CloudStore per la Pa britannica.
Più generalmente, e con alcuni svantaggi, può vedere qualsiasi file system che possa essere montato da un sistema operativo con un url del tipo file://.

Le distribuzioni principali
Hadoop è un framework open source. Analogamente ad altri pacchetti software, ne possono esistere versioni commerciali, che seguano le direttive delle specifiche licenze. Con l'open source, infatti, è possibile far denaro legalmente, se si offrono migliorie e servizi che attraggono l'utenza, rispettando però le regole della comunità.

Esistono quindi svariate distribuzioni di Hadoop. Forse le tre più note sono HortonWorks, MapR e Cloudera, con percentuali open source variabili tra l'80% e il 100% e con finanziamenti anche superiori al miliardo di dollari.

Alcune implementazioni stanno poi sperimentando il cosiddetto HaaS, Hadoop as a Service.
Ovviamente implementare una qualsiasi distribuzione di Hadoop non vuol dire riuscire a migliorare la propria attività: senza le idee chiare, i big data non svelano nessun segreto che permetta di meglio ipotizzare il futuro.

Se questo articolo ti è piaciuto e vuoi rimanere sempre informato sulle novità tecnologiche iscriviti alla newsletter gratuita.

LASCIA UN COMMENTO

Please enter your comment!
Please enter your name here