You are on page 1of 35

Tema 2:

INTRODUCCIÓ AL BIG DATA

Professor:
Lluís Echeverria Rovira
Data:
18/04/2023

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software


Stack genèric d'una plataforma Big Data Tema 2: Introducció al Big Data

Apache Spark

Apache Hadoop

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 2


Índex Tema 2: Introducció al Big Data

I. Apache Spark

II. Apache Spark vs Apache Hadoop MapReduce

III. Apache Spark com a Resource Manager

IV. RDD

V. SQL, Datasets & Dataframes

VI. Streaming

VII. Mlib

VIII. GraphX

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 3


Apache Spark Tema 2: Introducció al Big Data

Motor de processat i framework distribuït que facilita la manipulació i anàlisi de grans volums de dades.

Projecte Apache -> Open Source

Desenvolupat amb Scala, ofereix APIs per codificar amb Scala, Java, Python i R

Proporciona funcionalitats avançades: SQL, Streaming, Mlib, GraphX

Ofereix més de 80 operadors optimitzats pel processament distribuït

Apareix degut a les limitacions d’Apache Hadoop MapRecue per


enfrontar certes problemàtiques

Powered by:
https://spark.apache.org/powered-by.html

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 4


Apache Spark Tema 2: Introducció al Big Data

• 2009: Desenvolupat per Matei Zaharia al AMPLab de la UC Berkeley.


• 2010: Spark passa a ser codi obert sota llicència BSD.

• 2013: El projecte Spark es dona a la fundació Apache, passa a nombrar-se Apache Spark i adopta la
llicència Apache 2.0.

• 2014: (Febrer). Apache Spark es converteix en un projecte Apache Top-Level

• 2014: (Maig). v1.0

• 2014: (Novembre). L’empresa Databricks obté un record mundial en l’ordenació de dades


• 2015: El projecte Apache Spark te més de 1000 contribuïdors

• 2021: (Febrer). v.3.0.2

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 5


Índex Tema 2: Introducció al Big Data

I. Apache Spark

II. Apache Spark vs Apache Hadoop MapReduce

III. Apache Spark com a Resource Manager

IV. RDD

V. SQL, Datasets & Dataframes

VI. Streaming

VII. Mlib

VIII. GraphX

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 6


Apache Spark vs Apache Hadoop MapReduce Tema 2: Introducció al Big Data

• Spark no emmagatzema dades, es centra en el processat.


• Processos completament executats en memòria: 100 vegades més ràpid que Apache Hadoop MapReduce i
ofereix més de 80 operadors.
• Els dos projectes son Open Source, però donat que Spark corre en memòria, s’incrementa el cost de Hardware.

• Hadoop és adequat per processar, en batch, grans fitxers mitjançant MapReduce. Spark va més enllà i permet el
processat en stream.

• Els dos son tolerants a errors i faciliten la escalabilitat.

• Spark és més senzill d’utilitzar, donat que ofereix una API a més alt nivell.

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 7


Apache Spark vs Apache Hadoop MapReduce Tema 2: Introducció al Big Data

Hadoop MapReduce Apache Spark

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 8


Apache Spark vs Apache Hadoop MapReduce Tema 2: Introducció al Big Data

• Hadoop, per si sol, no incorpora funcionalitats addicionals com ML. Les llibreries auxiliars que ho permeten
segueixen sent lentes ja que treballen sobre disc.

• Spark incorpora el servei DAG (Direct Acyclic Graph) Scheduler, que és responsable d’optimitzar les
aplicacions, dividint les operacions en stages i optimitzant la seva execució.

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 9


Apache Spark: DAG Tema 2: Introducció al Big Data

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 10


Índex Tema 2: Introducció al Big Data

I. Apache Spark

II. Apache Spark vs Apache Hadoop MapReduce

III. Apache Spark com a Resource Manager

IV. RDD

V. SQL, Datasets & Dataframes

VI. Streaming

VII. Mlib

VIII. GraphX

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 11


Apache Spark com a Resource Manager Tema 2: Introducció al Big Data

Apache Spark pot ser executat sobre diferents Resource Managers:


• Apache Hadoop YARN
• Apache Mesos
• Kubernetes
• Spark Standalone

Arquitectura Master-Slave
Dos modes de llançament d’aplicacions:
• Mode client: El driver s’executa de forma remota, fins i tot fora
del clúster
• Mode clúster: El driver s’executa en un node worker del clúster

Pipeline d’inici:
1. SparkContext (driver) negocia recursos amb Resource Manager
2. Resource Manager li assigna executors als workers
3. SparkContext envia el codi als executors
4. Arranca l’aplicació
UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 12
SparkContext Tema 2: Introducció al Big Data

SparkContext és una entitat que:


• Gestiona tota l’aplicació i està definida en el codi, en el programa principal, el driver
• S’encarrega de contactar amb el gestor de recursos del clúster per negociar l’accés a
aquests (en els nodes workers) i executar l’aplicació.

• Els recursos en els workers s’agrupen per Executors, entitats


equivalents als contenidors de Yarn
• Cada aplicació disposa dels seus Executors, que estan
aixecats fins el final de l’app executant les tasques
• Permet aïllar les aplicacions i els recursos, cada driver
gestiona les seves tasques i cada executor corre una JVM
• Una vegada disposa dels recursos, l’SC arranca l’app enviant
UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software el codi als executors 13
Índex Tema 2: Introducció al Big Data

I. Apache Spark

II. Apache Spark vs Apache Hadoop MapReduce

III. Apache Spark com a Resource Manager

IV. RDD

V. SQL, Datasets & Dataframes

VI. Streaming

VII. Mlib

VIII. GraphX

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 14


Apache Spark: RDD Tema 2: Introducció al Big Data

Resilient Distributed Dataset (RDD): estructura de dades en memòria, distribuïda e immutable amb possibilitats de recuperació de
fallades. Proporciona una API per a realitzar transformacions i accions sobre les dades, així com per al control de la memòria i el
particionament d'elements per optimitzar la ubicació de les dades. Un RDD es pot crear des d'un emmagatzematge extern o des d'un
altre RDD i emmagatzema informació sobre els seus pares per optimitzar l'execució (mitjançant canalització d'operacions) i recomputar
la partició en cas de fallada.

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 15


Apache Spark: RDD Tema 2: Introducció al Big Data

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 16


Apache Spark: RDD Tema 2: Introducció al Big Data

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 17


Apache Spark: RDD Tema 2: Introducció al Big Data

Transformacions: Permeten crear nous RDDs a partir d’un altre RDD

Lazy evaluation

Accions: forcen el còmput i retornen un valor al driver després


d'executar un càlcul al conjunt de dades.

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 18


Apache Spark: RDD Tema 2: Introducció al Big Data

Accions: forcen el còmput i retornen un valor al driver després d'executar un càlcul al conjunt de dades. Alguns exemples:

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 19


Apache Spark: RDD Tema 2: Introducció al Big Data

Transformacions: Permeten crear nous RDDs a partir d’un altre RDD. Alguns exemples:

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 20


Apache Spark: RDD Tema 2: Introducció al Big Data

Transformacions: Clau-valor. Alguns exemples:

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 21


Apache Spark: RDD Tema 2: Introducció al Big Data

WordCount v2 WordCount v1

Error!
Estimació del valor de Pi

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 22


Índex Tema 2: Introducció al Big Data

I. Apache Spark

II. Apache Spark vs Apache Hadoop MapReduce

III. Apache Spark com a Resource Manager

IV. RDD

V. SQL, Datasets & Dataframes

VI. Streaming

VII. Mlib

VIII. GraphX

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 23


Apache Spark: SQL, Datasets & Dataframes Tema 2: Introducció al Big Data

Spark SQL és un mòdul d’Apache Spark per al processat de dades estructurades. Afegit a la versió v1.6

A diferència de l'API bàsica Spark RDD, les interfícies proporcionades per Spark SQL proporcionen a més informació
sobre l'estructura de les dades i el càlcul que s'està realitzant i Apache Spark pot optimitzar, encara més, les
operacions.

Permet utilitzar el llenguatge SQL per executar consultes/processos.

Habilita l’API Dataset. Un Dataset és una col·lecció distribuïda de dades amb tipus.

Habilita l’API Dataframe. Un Dataframe és un Dataset organitzat per columnes, conceptualment equivalent a una
taula d’una base de dades relacionals. És un Dataset de Rows.

Afegeix un ampli ventall de funcionalitats i permet una codificació encara a més alt nivell.

La estructura de dades base segueix sent l’RDD.

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 24


Apache Spark: SQL, Datasets & Dataframes Tema 2: Introducció al Big Data

SparkSession

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 25


Apache Spark: SQL, Datasets & Dataframes Tema 2: Introducció al Big Data

Dataframe

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 26


Apache Spark: SQL, Datasets & Dataframes Tema 2: Introducció al Big Data

Dataframe

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 27


Índex Tema 2: Introducció al Big Data

I. Apache Spark

II. Apache Spark vs Apache Hadoop MapReduce

III. Apache Spark com a Resource Manager

IV. RDD

V. SQL, Datasets & Dataframes

VI. Streaming

VII. Mlib

VIII. GraphX

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 28


Apache Spark: Streaming Tema 2: Introducció al Big Data

Spark Streaming és una extensió de l’API Core d’Spark que permet un processament de flux de dades en temps
real, escalable, de gran rendiment i tolerant a fallades.

Les dades es poden ingerir de moltes fonts, com ara


sockets, Apache Kafka, Kinesis o TCP, i es poden processar
mitjançant algoritmes complexos expressats amb funcions
d'alt nivell com a map, reduce, union i window. Finalment,
les dades processades es poden enviar als sistemes de
fitxers, bases de dades i taulers en viu.

Spark Streaming rep fluxos de dades com entrada, en


temps real, i els divideix en lots, que després són
processats pel motor Spark per generar el flux final de
resultats en lots.

Spark Structured Streaming exten l’API SQL per al Exemple Spark Streaming
processar de flux de dades Exemple Spark Structured Streaming

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 29


Índex Tema 2: Introducció al Big Data

I. Apache Spark

II. Apache Spark vs Apache Hadoop MapReduce

III. Apache Spark com a Resource Manager

IV. RDD

V. SQL, Datasets & Dataframes

VI. Streaming

VII. Mlib

VIII. GraphX

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 30


Apache Spark: MLib Tema 2: Introducció al Big Data

Spark MLlib és la biblioteca d'aprenentatge automàtic (ML) de


Spark.

El seu objectiu és que l'aprenentatge automàtic pràctic sigui


escalable i fàcil.

A un alt nivell, proporciona eines com:


• Algoritmes ML: algoritmes d’aprenentatge més comuns com
classificació, regressió o clustering
• Caracterització: extracció, transformació, reducció de
dimensionalitat i selecció de característiques
• Pipelines: eines per construir, avaluar i ajustar Pipelines ML
• Persistència: desar i carregar algorismes, models i pipelines
• Utilitats: àlgebra lineal, estadístiques, tractament de dades,
etc.

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 31


Apache Spark: MLib Tema 2: Introducció al Big Data

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 32


Índex Tema 2: Introducció al Big Data

I. Apache Spark

II. Apache Spark vs Apache Hadoop MapReduce

III. Apache Spark com a Resource Manager

IV. RDD

V. SQL, Datasets & Dataframes

VI. Streaming

VII. Mlib

VIII. GraphX

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 33


Apache Spark: GraphX Tema 2: Introducció al Big Data

GraphX és un component de Spark optimitzat pel càlcul distribuït de grafs.

A un nivell alt, GraphX amplia l’Spark RDD introduint una nova abstracció de Graph: un multí graf dirigit amb propietats
connectades a cada vèrtex i aresta.

Per donar suport aquest tipus de càlcul, GraphX


exposa un conjunt d'operadors fonamentals (per
exemple, subgraph, joinVertices i
aggregateMessages), així com altres funcionalitats
avançades.

GraphX inclou una col·lecció creixent d’algoritmes i


constructors de grafs per simplificar les tasques
d’anàlisi d¡aquest tipus d’estructura de dades.

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software 34


Tema 2:
INTRODUCCIÓ AL BIG DATA

UAB, Grau d’Enginyeria. Arquitectura i Tecnologies Software

You might also like