Descrizione delle principali tecnologie abilitanti alla gestione dei Big Data, con particolare attenzione all’ecosistema che gravita intorno al framework Hadoop di Apache.
2. BD-ST
Descrizione delle principali tecnologie abilitanti alla gestione dei Big Data, con particolare attenzione all’ecosistema che gravita intorno al framework Hadoop di Apache.
Abstract
3. Team Leader presso Consulthink SpA
https://www.linkedin.com/in/massimoromano
Relatore
BD-ST
5. BD-ST
•Big data è il termine utilizzato per descrivere una raccolta di dati così grande e complessa da richiedere strumenti differenti da quelli tradizionali per il loro trattamento, in tutte le fasi del processo: dall'acquisizione, alla curation, passando per condivisione, analisi e visualizzazione.
•Le caratteristiche principali dei big data, si possono riassumere nelle tre "V”:
1.Volume: nel senso di ingenti quantitativi di dati non gestibili con i database tradizionali;
2.Velocità: dati che sono generati e richiedono di essere processati a ritmi sostenuti (o in tempo reale);
3.Varietà: elementi di diversa natura e non necessariamente strutturati come testi, audio, video, flussi di click, segnali provenienti da RFID, cellulari, sensori, transazioni commerciali di vario genere.
Definizione (wikipedia)
6. •Solo in Italia ogni giorno sono creati 2,5 quintilioni di byte di dati, il 90% dei quali è stato creato solo negli ultimi due anni (IBM). 1 quintilione = 1000000000000000000000000000000 = 1E30
•L’utilizzo delle piattaforme tradizionali per la gestione di tale mole di informazioni non è una opzione “impossibile” dal punto di vista tecnologico, ma significa “convertire” dati non strutturati e/o poco correlati in una forma gestibile dai database relazionali per il loro trattamento.
•Tale processo di conversione richiede una tale quantità di tempo e costi talmente elevati rispetto all’obiettivo perseguito che l’opzione risulta semplicemente: “Economicamente Non Sostenibile”.
Motivazioni
BD-ST
7. •Google: estrazione degli indici dei documenti;
•Facebook: profilazione degli utenti;
•Amazon: fornire suggerimenti di acquisto;
•Walmart: analisi del comportamento di acquisto dei propri clienti (Teradata);
•AT&T: pianifica la riparazione delle celle in base alla Customer Experience;
•Germania: analisi dei propri avversari nei mondiali di Brasile 2014 (SAP);
•Mediaset: sentiment analisi incrociando social media ed altre fonti (IBM);
•Telecom Italia: monitoraggio della rete e produzione di KPI;
•Agenzia delle Entrate: elaborazione dati sul reddito;
Esempi
BD-ST
8. •Migliori prestazioni perché dovuti all’eliminazione di eventuali colli di bottiglia.
•L’infrastruttura di rete deve essere adeguata al trasferimento di dataset di dimensioni dell’ordine di qualche terabyte.
•Sicurezza, al backup e ripristino dei dati, alla governance.
Infrastruttura (Shared Nothing)
BD-ST
•Richiedono un approccio basato su un modello decentralizzato.
•Utilizzo di tanti “commodity server” di piccole dimensioni con risorse di storage gestiti localmente.
•Maggiore flessibilità (costi e scalabilità) perché si utilizzano migliaia di server di fascia bassa piuttosto che migliaia di server enterprise e storage condiviso.
SMP: Symmetric Multi Processing
MPP: Massive Parallel Processing
10. •Hadoop è un framework per il calcolo parallelo di dataset molto grandi (ordine dei petabyte) su un elevato numero di nodi (poche decine a diverse migliaia) composti da server “standard” (basso costo).
•Il suo utilizzo in scenari tradizionali (elaborazione di singoli record, OLTP) è fortemente sconsigliato e non avrebbe senso;
•Orientato all’elaborazione batch (Twitter Storm per elaborazione Real-Time).
•Modello di computazione adottato è Map Reduce (Dean e Ghemawat) basato sul principio “divide et impera” ed ispirato alle funzioni map() e reduce() del LISP.
•165 organizzazioni censite sulla pagina ufficiale: Twitter, Google, Spotify, LinkedIn, Last.fm, IBM, Facebook, Ebay, Adobe, etc.
Hadoop
BD-ST
11. •Pensato per realizzare un sistema distribuito di larga scala, senza preoccuparsi dei problemi legati alla sua gestione: partizionamento dei dati, scheduling dei thread, controllo dei fallimenti dei nodi, gestione della comunicazione i nodi.
•Rispetto a modelli tradizionali di calcolo parallelo (Grid Computing):
•Utilizza risorse locali e non aree di storage condivise;
•Offre librerie di programmazione semplici e di alto livello;
•Gestisce problemi a livello applicativo invece di sfruttare sistemi hardware di alta affidabilità;
Hadoop
BD-ST
12. •Hadoop common (strato software comune con funzioni di supporto);
•YARN (framework per calcolo distribuito si occupa della gestione delle risorse);
•Hadoop Distributed File System (HDFS - derivato da Google's GFS)
•Hadoop MapReduce Framework (derivato da Google's MapReduce).
Hadoop
BD-ST
HADOOP
Distributed Storage
(HDFS)
Distributed Processing
(MapReduce)
Common
YARN
13. Architettura Hadoop
BD-ST
MASTER
Node Name
Job Tracker
SLAVE
Data Name
Task Tracker
SLAVE
Data Name
Task Tracker
CLIENT APP.
1000s
Svincola dai problemi relativi a:
-Collocazione dei file;
-Gestione dei fallimenti;
-Scomposizione del calcolo;
-Gestione della scalabilità;
14. HDFS
BD-ST
Ogni file è suddiviso in blocchi (64MB o 128MB) ridondati su più nodi (default 3 copie) ospitati su rack differenti;
•La ridondanza garantisce l’affidabilità ma anche l’efficienza nel recupero dei file (coinvolto il nodo più vicino);
•Fornisce al programmatore un modello di storage virtualmente infinito;
•Progettato per gestire un numero elevato di file di dimensioni ragguardevoli (terabyte);
•Identificazione dei guasti e recovery dei dati è la sua caratteristica principale;
15. HDFS
BD-ST
•Name Node: sono due uno attivo, l’altro in standby. Gestisce il file system:
•Il namespace ovvero elenco dei file e dei blocchi in cui sono suddivisi;
•Le strategie di replica e allocazione dei blocchi;
•Verifica la presenza dei nodi per l’affidabilità.
•Costituisce un single point of failure;
16. HDFS
BD-ST
•Secondary Name Node: di supporto al NameNode (per l’efficienza) esegue le operazioni di checkpoint (Checkpoint Node);
•Backup Node: simile al CheckpointNode ma mantiene il namespace in memoria e lo aggiorna continuamente.
17. HDFS
BD-ST
•Data Node: gestisce fisicamente lo storage e soddisfa le richieste dei client.
•Inviano un heartbeat (ogni 3sec) al NameNode con un block report. Se il nodo è giù o i blocchi corrotti è avviata la procedura di replica;
•I client contattano il Name Node per conoscere quale Data Node contiene le informazioni richieste;
18. MapReduce
BD-ST
•MapReduce è basato sul concetto di functional programming dove c’è scarsa codivisione dei dati;
•Prevede la suddivisione del calcolo in diverse parti (divide et impera) processabili in modo autonomo;
•L’implementazione consiste nello specificare: input, output e funzioni map e reduce come implementazioni di classi java.
•L’output finale può essere input di un nuovo job MapReduce.
19. Word Count
BD-ST
Map(k1,v1) → list(k2,v2) map(String name, String document) { // name: document name // document: document contents for each word w in document: emit (w, 1) }
Reduce(k2, list (v2)) → list(v3)
reduce(String word, Iterator partialCounts){
// word: a word
// partialCounts: list of aggregated partial counts
sum = 0
for each pc in partialCounts:
sum += ParseInt(pc)
emit (word, sum)
}
20. MapReduce
BD-ST
•JobTracker: Execution Plane e Coordination;
•Si occupa della gestione del ciclo di vita dei job MapReduce;
•Privilegia i nodi che contengono i dati o altrimenti seleziona un nodo nello stesso rack;
•In caso di fault si fa carico della ripetizione del job;
•TaskTracker: eseguono i task (di map o reduce) sotto la direzione del JobTracker;
21. MapReduce
BD-ST
1.Client sottomette e job al JobTracker e copia i file binari (jar) in HDFS;
2.JobTracker interroga il NameNode per conoscere dove sono collocati i dati necessari;
3.JobTracker identifica i nodi più vicini ai dati e verifica che abbiano slot disponibili (data-local, rack-local, cross-rack) quindi crea un piano di esecuzione;
4.TaskTracker esegue il job e riporta al JobTracker attraverso heartbeat;
22. Ecosistema Hadoop
BD-ST
•The Hadoop Ecosystem Table http://hadoopecosystemtable.github.io/
•Big Data Ecosystem http://hadoopilluminated.com/hadoop_illuminated/Bigdata_Ecosystem. html
24. Tika
BD-ST
•Strumento per la l’identificazione e l’esrtazione di metadati e testo danumerosi tipi di documenti;
•Formati: HTML, XML, Microsoft Office, PDF, RTF, EPUB, OpenDocument, ZIP, TXT, Immagini, Audio, Video, JAR, MBOX, etc.
•Funzionalità di Mime Type detection, parsing ed estrazione lingua.
•Utilizzabile sia per la fase di acquisizione che per quella di integrazione/arricchimento.
•Facilmente integrabile con Apache Solar.
25. Flume
BD-ST
•Strumento per la movimentazione di grosse quantità di dati da una sorgente verso una destinazione;
•Sorgente: File di testo, TCP o UDP, Avro, Altro Agent, Personalizabili (in java);
•Destinazioni: HDFS, Hbase, Logger, Avro, Altro Agent, Personalizzabili (in java);
•Scalabile orizzontalmente e dispone di meccanismi di failover e recovery che garantiscono il delivery dei dati;
•Basata sul concetto di Agent che esegue le seguenti operazioni: raccolta dei dati (source), passaggio e conservazione (channel) e instradamento(sink);
•Utilizzo tipico è la lettura dei log da diversi server ed il loro instradamento verso HDFS, dopo averli aggregati.
26. Sqoop
BD-ST
•Strumento per il trasferimento dei dati tra database relazionali (RDBMS) e Hadoop (HDFS, Hbase, Hive);
•Database supportati: Teradata, Netezza, Oracle, MySQL, Postgres, and HSQLDB;
•Architettura basata su connettori che consente l’estensione attraverso l’implementazione di plug-in;
•Utilizza job MapReduce per l’import parallelo dei dati opportunamente partizionati;
•Utilizza l’introspezione per ottenere i metadati necessari all’import.
•La classe java generata può essere utilizzata per elaborazione MapReduce.
sqoop import –connect dbc:mysql://…. –username user –password password –table tab1 –targhet-dir /folder_hdfs1/folder_hdfs2
27. HCatalog
BD-ST
•Hadoop consente la gestione dei dati indipendentemente dal loro formato grazie alla mancanza di uno schema fisso;
•Lo schema è applicato nel momento in cui sono utilizzati attraverso l’applicazione di uno strato di metadati che consentono, agli strati applicativi, di interagire con i dati con linguaggi di query;
•Compito di HCatalog è si semplificare la creazione e gestione dei metadati e la loro esposizione agli strumenti che li utilizzano;
•Fornisce un layer di metadati che consente di avere una visione relazionale dei dati, organizzandoli in tabelle e database;
28. Hive
BD-ST
•Strumento di data warehousing in grado di manipolare grandi quantità di dati presenti in sistemi distribuiti (OLTP vs OLAP);
•ETL: caricamento e manipolazione dei dati;
•Consente una strutturazione relazionale dei dati;
•Linguaggio simile a SQL (HiveQL);
•L’output del compilatore è una serie di job MapReduce che si occupano dell’esecuzione delle query;
•Si avvale di un repository (metastore) che conserva i metadati di ciascuna tabella oppure utilizza HCatalog;
•Lento quindi non adatto ad interrogazioni real-time;
•Non destinato a rimpiazzare SQL ma è uno strumento per creare job su grandi moli di dati;
29. HBase
BD-ST
•Schemaless, Wide Table, Denormalized;
•Studiato per lavorare su cluster di nodi, ognuno con il proprio storage, la propria cache e la propria capacità di computazione;
•Consente l’accesso rapido (random, low latency) ad una singola riga fra miliardi di record, diversamente HDFS consente un accesso batch ai dati (high latency).
•Un Data Base distribuito (modellata su BigTable di Google) column-oriented, lavora sopra HDFS;
•Tratta sia dati strutturati che non strutturati;
•E’ un database relazionale ma consente una modellazione flessibile e dinamica dei dati in quanto non si cura dei tipi;
30. HBase
BD-ST
•Fortemente basato su HDSF;
•In corrispondenza dei NodeName e dei DataNode sono presenti le istanze dei servizi HMaster e RegionServer;
•HMaster ha funzioni di monitoraggio, gestisce le modifiche ai metadati, load balancing, assegnazione region;
•I RegionServer gestiscono le cosiddette region, elemento di base per la distribuzione delle tabelle;
•I dati sono organizzati in una gerarchia Tabella->Region->…
31. Pig
BD-ST
•Piattaforma per semplificare l’analisi e manipolazione di grandi quantità di dati;
•Come Hive, nasce per evitare la realizzazione job MapReduce che può risultare oneroso;
•Basato su:
•PigLatin: linguaggio di script per la gestione di flussi di dati;
•Pig Engine: parsa, ottimizza ed esegue gli script PigLatin come una serie di job MapReduce che poi sottomette al cluster Hadoop;
•Consente l’utilizzo di Hadoop a quanti con conoscono Java e MapReduce offrendo un approccio semplificato;
•Non richiede nessuna installazione sui cluster in quanto si compone semplicemente di un client che sottomette e monitorizza i job creati;
33. Zookeeper
BD-ST
•Fornisce una infrastruttura centralizzata e dei servizi che consentono il coordinamento di applicazioni distribuite (Distributed Coordination Service);
•Configurazione centralizzata dei nodi;
•Sincronizzazione degli oggetti comuni nel cluster;
•Serializzazione;
•Consistenza sequenziale;
•Atomicità;
•Immagine singola del sistema;
•Affidabilità;
•Tempestività.
34. Ambari
BD-ST
•Strumento di gestione e monitoraggio del cluster Hadoop;
•Fornisce una interfaccia web per l’amministrazione;
•Supporta: HDFS, MapReduce, Hive, HCatalog, HBase, Zookeeper, Oozie, Pig, Sqoop;
•Utilizza dei wizard per l’installazione;
•Fornisce tool per l’avvio e l’arresto dei servizi sui vari nodi;
•Effettua monitoraggio e reporting anche tramite alert e-mail.
35. Altro
BD-ST
•Oozie: motore di workflow;
•Cassandra: database column-oriented (Amazon);
•Mahount: libreria per machine learning;
•Hue: interfaccia web per l’analisi dei dati con hadoop;
•Whirr: librerie per eseguire cloud services;
•Knox: rest api gateway per l’interazione conl cluster hadoop;
•Kafka: message broker distribuito per gestione di feed in real-time;
•Storm: real-time computation system;
•Spark: data analytic cluster computing framework; Non Apache
•R: software per analisi statistiche di base ed avanzate (librerie RHive e RHadoop);
•Impala: motore di esecuzione di query distribuite (Cloudera) con prestazioni real- time;
•HAWQ: motore di esecuzione di query distribuite (Pivotal);
36. BD-ST
Bibliografia ed Approfondimenti
•http://hadoop.apache.org/
•http://hadoopecosystemtable.github.io/
•http://storm.incubator.apache.org/
•J. Dean, S. Ghemawat, MapReduce: Simplified data processing on large clusetrs, in OSDI’04: 137-150.
•Alessandro Rezzani: Architettura, tecnologie e metodi per l’utilizzo di grandi basi di dati.
•Oracle BigData Virtual Machine http://www.oracle.com/technetwork/database/bigdata- appliance/oracle-bigdatalite-2104726.html
•Hortonworks Sandbox http://hortonworks.com/products/hortonworks-sandbox/
37. 40
Grazie per l’attenzione
Contatti
Web: www.consulthink.it
Mail: info@consulthink.it
Telefono:+39-06 4549 2416
Fax:+39-06 4549 2454
38. BD-ST
Bibliografia ed Approfondimenti
•http://hadoop.apache.org/
•http://hadoopecosystemtable.github.io/
•http://storm.incubator.apache.org/
•J. Dean, S. Ghemawat, MapReduce: Simplified data processing on large clusetrs, in OSDI’04: 137-150.
•Alessandro Rezzani: Architettura, tecnologie e metodi per l’utilizzo di grandi basi di dati.