Big data - stack tecnologico

38
1 Big Data Stack Tecnologico Data

description

Descrizione delle principali tecnologie abilitanti alla gestione dei Big Data, con particolare attenzione all’ecosistema che gravita intorno al framework Hadoop di Apache.

Transcript of Big data - stack tecnologico

Page 1: Big data -  stack tecnologico

1

Big Data

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

Big

Data

Acqu

isiz

ion

e

Calc

olo

/

Ana

lisi

Inte

gra

zio

ne

/ Arric

chim

ento

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

YA

RN

Page 13: Big data -  stack tecnologico

Architettura Hadoop

BD-ST

MASTER

Node

Name

Job

Tracker

SLAVE

Data

Name

Task

Tracker

SLAVE

Data

Name

Task

Tracker

CLIEN

T 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 23: Big data -  stack tecnologico

HDFS (Hadoop Distributed File System)

HCatalog (Table & Schema Management)

Mapreduce (Distributed Programming Framework)

HIVE (SQL)

PIG (Data Flow)

Flu

me

/Sq

oo

p/T

ika

(D

ata

inte

gra

tion)

Hb

ase

(C

olu

mnar

NoS

QL S

tore

)

Zookeeper (Coordination)

Am

ba

ri

(Managem

ent)

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

• 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);

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 Sandbox

http://hortonworks.com/products/hortonworks-sandbox/

Page 37: Big data -  stack tecnologico

40

Grazie per l’attenzione

Contatti

Web: www.consulthink.it

Mail: [email protected]

Telefono:+39-06 4549 2416

Fax:+39-06 4549 2454