Hadoop è una tecnologia open source e oggi è la piattaforma di gestione dati più comunemente associata alle applicazioni Big Data. Il framework di elaborazione distribuita venne creato nel 2006 principalmente da Yahoo ma si basava in parte su spunti già delineati da Google in un paio di documenti tecnici. Poco dopo, grandi realtà come Facebook, LinkedIn e Twitter hanno adottato questa tecnologia e hanno cominciato a contribuire al suo sviluppo.
Negli ultimi anni, Hadoop si è evoluto in un complesso ecosistema di componenti infrastrutturali e strumenti correlati, che sono confezionati insieme dai vari fornitori soluzioni commerciali Hadoop. In esecuzione su cluster di commodity server Hadoop offre elevate prestazioni e un approccio a basso costo verso un’architettura di gestione dei Big Data per il supporto di analisi avanzate.
Dal momento in cui la consapevolezza in merito alle potenzialita di Hadoop è aumentata, il suo uso si è diffuso ad altri settori per applicazioni di reporting e analitiche che coinvolgono un mix di dati strutturati tradizionali e nuove forme di dati non strutturati e semi-strutturati, che comprendono per esempio dati delle cronologie web, informazioni relative a pubblicità online, dati dei social media, informazioni sanitarie o dati provenienti dai sensori della Internet of Things.
I componenti opensource di Hadoop
Il framework Hadoop comprende un gran numero di componenti software open source, con una serie di moduli di base per l’acquisizione, l’elaborazione, la gestione e l‘analisi di enormi volumi di dati che sono circondati da una varietà di tecnologie di supporto. I suoi componenti principali sono:
- Hadoop Distributed File System (HDFS): supporta un sistema convenzionale gerarchico di directory e file che distribuisce file attraverso i nodi di storage (per esempio DataNodes) in un cluster Hadoop
- MapReduce: framework software e modello di programmazione per l’elaborazione parallela di applicazioni batch.
- YARN: ambiente di esecuzione per applicazioni distribuite, di cluster management e gestione delle applicazioni. Si occupa di assegnare all’interfaccia le risorse sui nodi del cluster per l’esecuzione di applicazioni e controlla l’avanzamento dei lavori di elaborazione.
- Hadoop Common: componente che fornisce accesso al file system supportato da Hadoop
Nei cluster Hadoop, questi componenti essenziali e altri moduli software sono stratificati su una raccolta di nodi hardware di calcolo e archiviazione dati. I nodi sono collegati tramite una rete interna ad alta velocità per formare un sistema di elaborazione parallelo e distribuito ad alte prestazioni.
Quali i modelli di distribuzione del framework
Trattandosi di un insieme di tecnologie open source, Hadoop non è controllato da un singolo fornitore e il suo sviluppo è gestito dalla Apache Software Foundation. Apache offre Hadoop sotto una licenza che concede praticamente agli utenti un utilizzo del software gratuito e royalty-free. Gli sviluppatori possono scaricare il software direttamente dal sito di Apache e costruire poi un ambiente Hadoop per conto proprio, ma i fornitori offrono anche versioni pre-costruite con funzionalità di base che posso essere scaricate gratuitamente e installata su una varietà di piattaforme hardware. I fornitori distribuiscono anche versioni commerciali del software, che vengono venduti in abbinamento con diversi livelli di servizio, manutenzione e supporto. Loshin ricorda che, in alcuni casi, i venditori offrono prestazioni e funzionalità migliorate rispetto alla tecnologia Apache di base, fornendo per esempio strumenti software aggiuntivi per facilitare la configurazione cluster o l’integrazione e la gestione dei dati con piattaforme esterne. Queste tipologie di offerte commerciali rendono Hadoop sempre più abbordabile per le aziende di tutte le dimensioni, poiché il team di assistenza di un fornitore commerciale può aiutare l’azienda della fase di progettazione delle infrastrutture e sviluppo di Hadoop. Lo stesso team di supporto può anche guidare l’azienda nella selezione di strumenti e funzionalità avanzate per implementare rapidamente soluzioni analitiche ad alte prestazioni, utili a soddisfare le esigenze di business emergenti.
Cosa significa acquistare una versione commerciale di Hadoop
Oltre ai componenti principali ci sono alcuni degli strumenti che sono inclusi nelle tipiche distribuzioni Hadoop:
- sistemi di gestione alternativi di data processing e application execution come Tez o Spark che possono funzionare con YARN per fornire la gestione dei cluster, la gestione dei dati memorizzati nella cache e altre funzionalità volte a migliorare le prestazioni di elaborazione
- Apache HBase: un sistema di gestione dati modellata su BigTable di Google e scritta in Java che funziona su HDFS
- strumenti SQL-on-Hadoop come Hive, Impala, Stinger, Drill e Spark SQL che forniscono vari gradi di conformità con lo standard SQL per l’interrogazione diretta dei dati memorizzati in HDFS
- strumenti di sviluppo come ad esempio Pig che consentono agli sviluppatori di creare programmi MapReduce.
- strumenti di configurazione e di gestione Zoo- Keeper o Ambari, che possono essere utilizzati per il monitoraggio e la gestione
- ambienti analitici come Mahout che forniscono modelli analitici per apprendimento automatico, data mining e analisi predittiva
Poiché il software è open source, non si acquista una distribuzione Hadoop come un prodotto, di per sé: i fornitori vendono abbonamenti annuali di supporto con diversi contratti di servizio. Tutti i fornitori sono partecipanti attivi nella comunità Apache Hadoop, ma ognuno può promuovere i propri componenti aggiuntivi che ha fornito alla comunità come parte della sua distribuzione Hadoop.
Ci vuole un team coordinato di professionisti IT
Un altro consiglio degli esperti è tenere sempre a mente che, per ottenere le prestazioni desiderate da un sistema di Hadoop, è necessario fare riferimento a un team coordinato di professionisti IT qualificati che collaborino sulle varie fasi di pianificazione, progettazione, sviluppo, test, implementazione, operazioni e manutenzione per garantire le massime prestazioni. Questi team IT in genere comprendono:
- analisi in grado di valutare i requisiti delle prestazioni del sistema in base ai tipi di applicazioni che verranno eseguite in ambiente Hadoop
- architetti di sistema che valutino i requisiti delle prestazioni e le configurazioni hardware
- ingegneri di sistema che installino, configurino e ottimizzino il software stack Hadoop
- sviluppatori addetti a progettare e realizzare applicazioni
- esperti di data management che gestiscano l’integrazione dei dati, creino layout ed eseguano altre attività di gestione
- amministratori di sistema addetti alla gestione operativa e alla manutenzione
- project manager che monitorino l’attuazione dei vari livelli di stack e l’amdamemento del lavoro di sviluppo delle applicazioni
- un program manager impegnato a supervisionare l’attuazione dell’ambiente Hadoop e la prioritizzazione, lo sviluppo e l’implementazione delle applicazioni
In sostanza, l’evoluzione di Hadoop come ecosistema di gestione dei dati praticabile su larga scala ha creato un nuovo mercato del software che sta trasformando il settore della business intelligence e dell’analisi. Questa rivoluzione ha ampliato i tipi di applicazioni di analisi che gli utenti aziendali possono utilizzare e i tipi di dati che possono raccogliere e analizzare come parte di tali applicazioni. Il mercato comprende tre fornitori indipendenti specializzati in Hadoop: Cloudera, Hortonworks e MapR Technologies. Altre aziende che offrono distribuzioni o funzionalità di Hadoop includono Pivotal Software, IBM, Amazon Web Services e Microsoft.