big data - stack tecnologico

38
1 Big Data Stack Tecnologico Data

Upload: consulthinkspa

Post on 08-Jul-2015

447 views

Category:

Education


14 download

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

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