Big data architectures

Scale up vs scale out

In queste situazioni il paradigma si sposta da un potenziamento della singola istanza che gestisce il dato a un aumento del numero di istanze (scale out non scale up)

Questo porta alla necessita di gestire i dati all’interno di cluster di macchine connesse in rete e limitare i flussi di trasferimento di dati non necessari, aumentando il numero di macchine e di componenti hardware aumentano anche le probabilità che ci siano guasti hardware e software, e necessario pensare sistemi in grado di operare in ambienti ostili

Gestire i dati in infrastrutture distribuite: distributed filesystem dfs

Per gestire i dati in questi scenari si fa uso di filesystem distribuiti, questi adoperano secondo i seguenti principi

una delle implementazioni più note e quella di HADHOOP

Gestire la concorrenza: map reduce

Paradigma di sviluppo pensato per gestire la concorrenza in ambienti distribuiti come i datacenter, il codice viene suddiviso in due fasi:

flowchart TD A[map] B[map] C[map] D[aggregation layer] E{{reduce}} F{{reduce}} A & B & C --> D --> E & F

Le operazioni di map e reduce sono eseguite su nodi in parallelo, secondo un paradigma SIMD

I nodi vengono assegnati al cluster in base a dove si trovano i dati in input interessati dall’elaborazione, in questo caso si utilizzano

Map reduce, execution

Al momento dell’esecuzione, il supporto runtime crea un processo jobtracker che a sua volta crea un certo numero di tasktracker distribuiti nei vari nodi del cluster