mer 18 ottobre 2017 - Lo Sviluppatore  anno III

Big Data : Dalla Teoria all’Implementazione

Condividi

Si sente sempre più spesso parlare di Big Data, ma cosa è Big Data e sopratutto perchè è l’ultima tendenza in qualsiasi dominio aziendale? E’ solo una moda o c’è di più?

Come suggerisce il nome parliamo di grandi quantità di dati, ma grandi quanto? Si potrebbe rispondere in maniera corretta dicendo : “Tanto grande quanto riesci ad immaginare!” e questo perchè le sorgenti di tali dati sono talmente tante ed eteregenee che il limite è solo la propria immaginazione.

La grande mole di informazioni è dovuta al fatto che i dati arrivano in maniera massiva da sorgenti come: sensori RFID che raccolgono i dati del traffico, sensori utilizzati per raccogliere le informazioni meteo, i pacchetti GPRS dai telefoni cellulari, i messaggi dai social media, immagini digitali e video, registrazioni on-line delle transazioni di acquisto e da qualiasi altra fonte che ci può produrre informazioni di nostro interesse.

Tuttavia Big Data non è solo una questione di dimensioni, ma è l’occasione per trovare spunti a nuovi ed emergenti tipi di dati e contenuti, per rendere le aziende più agili, e di rispondere alle domande che prima erano considerati al di là della nostra portata. Big Data è caratterizzato da quattro aspetti principali: Volume, Varietà, Velocità, e Veridicità (Valore) conosciuti come “le quattro V di Big Data”. Esaminiamo brevemente ciò che ognuno di loro rappresenta e quali sfide si propongono:

Volume

Il Volume si riferisce alla capacità di acquisire, memorizzare ed accedere grandi volumi di dati. Basti pensare che Il 90% dei dati di tutto il mondo è stato generato negli ultimi due anni. Le organizzazioni oggi sono sopraffatte con volumi di dati; è facile accumulare terabyte, ma anche petabyte di informazioni di tutti i tipi, alcuni dei quali hanno bisogno di essere organizzati, verificati ed analizzati.

Varietà

Anche in questo momento, sensori, dispositivi di ogni tipo e social media stanno continuamente generando dati attraverso le pagine Web, i file di weblog, forum, social-media, audio, video, clic su flussi, e-mail, documenti, sistemi di sensori e così via. L’ 80% dei dati di tutto il mondo è di tipo semi-strutturato mentre le soluzioni di analisi tradizionali funzionano molto bene con le informazioni strutturate, ad esempio i dati in un database relazionale, con uno schema ben formato. La varietà dei tipi di dati rappresenta un cambiamento fondamentale nel modo in cui i dati vengono memorizzati e analizzati. Quindi la Varietà è riferita alle diverse tipologie di dati con cui si ha a che fare che sono difficilmente gestibili con sistemi “tradizionali” e richiedono pertanto tecnologie specifiche: appunto, le tecnologie Big Data.

Velocità

La Velocità è riferita al fatto che l’analisi dei dati deve essere fatta in tempo reale o quasi, del tipo che “a volte due minuti è già troppo tardi!”. Ottenere un vantaggio competitivo significa identificare una tendenza o un opportunità in minuti o addirittura qualche secondo prima del tuo concorrente.

Veridicità (Valore)

Tutti questi dati raccolti costituiscono un valore per una azienda. E’ dall’analisi dei dati che si colgono le opportunità e si trae supporto per i processi decisionali in modo tale che questi  possano avere un grande impatto sulla nostra attività, e più dati si hanno a disposizione più informazioni e valore si riescono ad estrarre. Tuttavia il solo volume dei dati non garantisce sufficientemente la “qualità” dei dati: Siamo sicuri che questi dati siano affidabili e possiamo usarli a supporto dei processi decisionali in maniera profiqua?. La veridicità e la qualità dei dati  diventa pertanto un requisito fondamentale affinchè i dati possano davvero “alimentare” nuove intuizioni e idee e costituire valore.

Dopo aver elencato le sfide che il Big Data si propone, vediamo un elenco dei principali strumenti open source basati su piattaforma Java ad oggi disponibili che si propongono di realizzare le “4 V” ed essere a supporto di Big Data.

Hadoop HDFS HDFS è il file system distribuito principale utilizzato dalle applicazioni Hadoop. Un cluster HDFS è costituito principalmente da un NameNode che gestisce i metadati del file system e DataNodes che memorizzano i dati effettivi. HDFS è specificamente progettato per immagazzinare un’enorme quantità di dati, in modo che da ottimizzare le operazioni di archiviazione e accesso a un numero relativamente piccolo di file molto grandi rispetto ai tradizionali file system che sono ottimizzati per gestire tanti file relativamente piccoli.
Hadoop MapReduce Hadoop MapReduce è un framework software per scrivere facilmente applicazioni che elaborano grandi quantità di dati (multi-terabyte data-set) in parallelo, su cluster di grandi dimensioni (migliaia di nodi)  in modo affidabile e fault-tolerant.
Apache HBase Apache HBase è il database Hadoop, una base dati, scalabile e distribuita. HBase fornisce, in tempo reale l’accesso casuale in lettura/scrittura  ed è ottimizzato per l’hosting di tabelle molto grandi – miliardi di righe x milioni di colonne – Il suo core è stato sviluppato basondosi sul modello del database sviluppato ed usato da Google Bigtable. Proprio come Bigtable sfrutta la memorizzazione di dati distribuiti fornito dal Google File System, Apache HBase fornisce funzionalità Big-table appoggiandosi ad HDFS.
Apache Cassandra Apache Cassandra è un database performante, scalabile e ad alta disponibilità che può essere eseguito su hardware o infrastrutture cloud che la rende la piattaforma perfetta per i dati mission-critical. Cassandra tipicamente viene replicato su più data-center in modo tale da garantire una minore latenza per gli utenti e la tranquillità di sapere che si può sopravvivere ad eventuali interruzioni regionali. Il modello dei dati di Cassandra offre la comodità degli indici delle colonne ad elevate prestazioni, un forte supporto per la denormalizzazione e le viste e una potente cache integrata.
Apache Hive Apache Hive è un sistema di data warehouse per Hadoop che facilita il riepilogo dei dati, query ad hoc, e l’analisi di grandi insiemi di dati memorizzati in file system compatibili Hadoop. Hive fornisce un meccanismo di interrogazione dei i dati utilizzando un linguaggio SQL-like chiamato HiveQL. Allo stesso tempo, questo linguaggio permette di usare gli algoritmi Map / Reduce quando HiveQL si rivela non adatto a certi scopi.
Apache Pig Apache Pig è una piattaforma per l’analisi di grandi insiemi di dati. Consiste in un linguaggio di alto livello per scrivere programmi di analisi dei dati, insieme con l’infrastruttura per valutare questi programmi. La caratteristica saliente dei programmi di Pig è la loro propensione ad una parallelizzazione sostanziale, che  permette appunto la gestione di grandi volumi di dati. L’ infrastruttura di Pig è costituita da un compilatore che produce sequenze di programmi Map-Reduce. Pig si basa su un linguaggio chiamato Pig Latin, un linguaggio pensato per essere semplice da usare, facilitare le ottimizzazioni ed essere estendibile.
Apache Chukwa Apache Chukwa è un sistema di raccolta di dati open source per il monitoraggio di sistemi distribuiti di grandi dimensioni. E ‘costruito in cima al Hadoop Distributed File System (HDFS) e Map / Reduce  ereditando la scalabilità e la robustezza di Hadoop. Chukwa include anche un kit di strumenti flessibili e potenti per la visualizzazione, il monitoraggio e l’analisi dei risultati per permettere un miglior uso dei dati raccolti.
Apache Ambari Apache Ambari è uno strumento web-based per il provisioning, la gestione e il monitoraggio di cluster basati su Apache Hadoop che include il supporto per Hadoop HDFS, Hadoop MapReduce, Hive, HCatalog, HBase, ZooKeeper, oozie, Pig e Sqoop. Ambari fornisce anche una dashboard per la visualizzazione della “salute” dei cluster, permettendo di analizzare le attività MapReduce, Pig e delle applicazioni Hive visivamente e diagnosticare le loro caratteristiche prestazionali in modo user-friendly.
Apache Zookeeper Apache ZooKeeper è un servizio centralizzato per mantenere le informazioni di configurazione, di naming, fornendo sincronizzazione distribuita, e la fornitura di servizi di gruppo. Tutti questi tipi di servizi sono utilizzati in una forma o un altra per le applicazioni distribuite. In breve Apache ZooKeeper è un servizio di coordinamento ad alto rendimento per le applicazioni distribuite, come quelli gestiti in un cluster Hadoop.
Apache Sqoop Apache Sqoop è uno strumento progettato per trasferire in modo efficiente dati di massa tra Apache Hadoop e archivi di dati strutturati, come i database relazionali.
Apache oozie Apache oozie è un sistema scalabile, affidabile ed estensibile per la schedulazione di workflow e serve per gestire i processi di Apache Hadoop. Oozie è integrato con il resto dello stack Hadoop e supporta diversi tipi di job di Hadoop  (come Java map-reduce, Streaming map-reduce, Pig, Hive, Sqoop e Distcp) nonché lavori specifici di sistema (come programmi Java e script di shell).
Apache Mahout Apache Mahout è una libreria per il machine learning e il data mining. Attualmente Mahout viene utilizzato principalmente per i seguenti 4 casi d’uso:

  • Recommendation mining : Cerca di capire il comportamento degli utenti e prova a trovare elementi che l’utente potrebbe gradire.
  • Clustering : Prende, ad esempio documenti di testo e li raggruppa per argomento o altro tipo di correlazione.
  • Classificazione : Impara dai documenti già categorizzati al fine di dare una categoria (sperabilmente corretta) a quei documenti non ancora categorizzati.
  • Frequent itemset mining : Prende dei gruppi di item che possono essere di vario genere ad esempio termini, in una sessione di query oppure articoli di un carrelo della spesa di un e-shop e identifca quali item “appaiono” usualmente insieme.
Apache HCatalog Apache HCatalog è una tabella e un servizio di gestione dello storage per i dati creati utilizzando Apache Hadoop. Questo include:

  • Fornire uno schema dati e tipi di dati condivisi.
  • Fornire un’astrazione di una tabella in modo che gli utenti non debbano preoccuparsi di dove e come sono memorizzati i loro dati.
  • Fornire l’interoperabilità tra i vari strumenti di Hadoop  quali Pig, Map Reduce, e Hive.

Per adesso su Big Data è tutto. Alla prossima.

Lascia un commento

Top