+ All Categories
Home > Engineering > Big data stack tecnologico

Big data stack tecnologico

Date post: 14-Apr-2017
Category:
Upload: massimo-romano
View: 34 times
Download: 0 times
Share this document with a friend
38
1 Big Data Stack Tecnologico Data
Transcript
Page 1: Big data stack tecnologico

1

Big DataStack Tecnologico

Data

Page 2: Big data stack tecnologico

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

Page 3: Big data stack tecnologico

Team Leader presso Consulthink SpA

https://www.linkedin.com/in/massimoromano

Relatore

BD-ST

Page 4: Big data stack tecnologico

BD-ST

Definizione?

Page 5: Big data stack tecnologico

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)

Page 6: Big data stack tecnologico

• 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

Page 7: Big data stack tecnologico

• 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

Page 8: Big data stack tecnologico

• 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

Page 9: Big data stack tecnologico

Tecnologie

BD-ST

BigD

ata

Acqu

isizio

ne

Calco

lo /

Anal

isi

Integrazione / Arricchimento

Immagazzinamento Organizzazione

http://wiki.apache.org/hadoop/PoweredBy

Page 10: Big data stack tecnologico

• 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

Page 11: Big data stack tecnologico

• 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

Page 12: Big data stack tecnologico

• 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

Page 13: Big data stack tecnologico

Architettura Hadoop

BD-ST

MASTER

Node Name

Job Tracke

r

SLAVE

Data Name

Task Tracke

r

SLAVE

Data Name

Task Tracke

r

CLIENT APP.

1000s

Svincola dai problemi relativi a:- Collocazione dei file;- Gestione dei fallimenti;- Scomposizione del

calcolo;- Gestione della scalabilità;

Page 14: Big data stack tecnologico

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;

Page 15: Big data stack tecnologico

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;

Page 16: Big data stack tecnologico

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.

Page 17: Big data stack tecnologico

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;

Page 18: Big data stack tecnologico

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.

Page 19: Big data stack tecnologico

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)}

Page 20: Big data stack tecnologico

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;

Page 21: Big data stack tecnologico

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;

Page 22: Big data stack tecnologico

Ecosistema Hadoop

BD-ST

• The Hadoop Ecosystem Tablehttp://hadoopecosystemtable.github.io/

• Big Data Ecosystemhttp://hadoopilluminated.com/hadoop_illuminated/Bigdata_Ecosystem.html

Page 23: Big data stack tecnologico

HDFS(Hadoop Distributed File System)

HCatalog(Table & Schema Management)

Mapreduce(Distributed Programming Framework)

HIVE(SQL)

PIG(Data Flow)

Flum

e/Sq

oop/

Tika

(Dat

a in

tegr

atio

n)

Hbas

e(C

olum

nar N

oSQL

Sto

re)

Zookeeper(Coordination)

Amba

ri(M

anag

emen

t)

Ecosistema Hadoop

Page 24: Big data stack tecnologico

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.

Page 25: Big data stack tecnologico

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.

Page 26: Big data stack tecnologico

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

Page 27: Big data stack tecnologico

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;

Page 28: Big data stack tecnologico

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;

Page 29: Big data stack tecnologico

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;

Page 30: Big data stack tecnologico

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->…

Page 31: Big data stack tecnologico

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;

Page 32: Big data stack tecnologico

Pig

BD-ST

• Notevole incremento della produttività.

Page 33: Big data stack tecnologico

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à.

Page 34: Big data stack tecnologico

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.

Page 35: Big data stack tecnologico

Altro

BD-ST

• Oozie: motore di workflow;• Cassandra: database column-oriented (Amazon);• Mahout: 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);

Page 36: Big data stack tecnologico

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 Sandboxhttp://hortonworks.com/products/hortonworks-sandbox/

Page 37: Big data stack tecnologico

40

Grazie per l’attenzione

ContattiWeb: www.consulthink.itMail: [email protected]:+39-06 4549 2416Fax:+39-06 4549 2454

Page 38: Big data stack tecnologico

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.


Recommended