G te c sesion3b- mapreduce

34
Victoria López @victoriademates www.tecnologiaUCM.es Universidad Complutense de Madrid 3b

Transcript of G te c sesion3b- mapreduce

Victoria López

@victoriademates

www.tecnologiaUCM.es

Universidad Complutense de Madrid

3b

2

3b

3

3b

4

• Creado por Google (2004)

– Modelo de programación paralela

– Concepto simple, inteligente, útil para múltiples aplicaciones

– Big datasets multi-node en multiprocessors

– Conjuntos de nodos: Clusters o Grids (programación distribuida)

– Capaz de procesar 20 PB en un día

– Es una variante del método Divide y Vencerás en Tecnología de la

Programación.

– No todos los problemas se pueden resolver con MapReduce, como

tampoco todos los problemas se pueden resolver con Divide y

Vencerás

5

6

8

9

– UsadoporYahoo!, Facebook, Twitter

Amazon, eBay…

– Implementa MapReduceen diferentes

arquitecturas tantoclústercomogrid

(Cloudcomputing)

http://hadoop.apache.org/

11

12

13MÁQUINA

HDFS

MapReduce

Apache Software Foundation

14

15MÁQUINA

Data Node

TaskTracker

MÁQUINA

HDFS

MapReduce

16MÁQUINA

Data Node

TaskTracker

MÁQUINA

Data Node

TaskTracker

MÁQUINA

Data Node

TaskTracker

17MÁQUINA

Data Node

TaskTracker

MÁQUINA

Data Node

TaskTracker

MÁQUINA

Data Node

TaskTracker

JobTracker

18MÁQUINA

Data Node

TaskTracker

MÁQUINA

Data Node

TaskTracker

MÁQUINA

Data Node

TaskTracker

NameNode

19

21

22

23API conjunto de funciones de uso general para facilitar la comunicación

24

Apache Pig is a platform for analyzing large data sets that consists of a high-level language for expressing data analysis programs.

25

The Apache Hive ™ data warehouse software facilitates querying and managing large datasets residing in distributed storage. Hive provides a mechanism to project structure onto this data and query the data using a SQL-like language called HiveQL.

26

Apache HBase™ is the Hadoop database, a distributed, scalable, big data store.

Los mensajes de Facebook se almacenan enHbase

27

Proyectos con Hadoop

Funcionamiento de Hadoop

https://www.youtube.com/watch?v=QOpxU9ni4bg#t=2203

Funcionamiento de HDFS

www.formhadoop.es/img/HDFS-comic.pdf

Funcionamiento de Hive

http://www.franciscojavierpulido.com/2013/11/hive-consultas-tipo-sql-sobre-hadoop.html

Proyectos con Spark

Framework de procesamiento en paralelo semejante a Hadoop.

Se incubó en AmpLabs como parte de la tesis doctoral de MateiZaharia, 2009 Berkeley (2014 en MIT).

Hoy en día es un ‘top level project’ de la Apache Software Fundation.

Databricks es la startup que surge de AmpLabs donde se sigue desarrollando Spark en explotación: da soporte y ofrece una pila de desarrollo para ejecución de Spark por parte de las empresas.

Proyectos con Spark

Palabras Clave de Spark

HDFS Se aligera mediante el uso de almacenamiento en memoria (In-Memory) con archivos RDD.

Archivos RDDs Permiten consultas tipo SQL en tiempos de ejecución muchísimo más rápidos. Este tipo de archivos fue presentado por Matei Zahariay varios colegas de Berkeley (Resilient Distributed Datasets: A Fault-TolerantAbstraction for In-Memory Cluster Computing, M. Zaharia et al.)

Se mantiene la convivencia de los sistemas y formatos de archivos y datos.

Map Reduce Módulo de ejecución con programación Funcional sobre los RDDs

Proyectos con Spark

Palabras Clave de Spark

Map Reduce Módulo de ejecución con programación Funcional sobre los RDDsRDD contiene las trnasformaciones que se van a realizar sobre los datos.

Datos inmutables

Paradigma de programación Funcional Recusiva vs. Imperativa

Evaluación perezosa característica de la programación funcional que permite ejecuciones rápidas In-Memory

Lambda-cálculo los parámetros pueden ser funciones, esto permite programar Map-Reduce de forma muy ágil

Proyectos con Spark

Ventajas de Spark

Mayor flexibilidad en la definición de transformaciones (nivel de programación)

Menor uso de almacenamiento en disco

Cálculos intermedios siempre a memoria y no a disco.

Aprovechamiento de la memoria

Tolerancia a fallos.Además permite simulaciones sobre nodos virtuales de forma local

Tracción de la comunidad: mucha gente y organizaciones están trabajando en mejorar y en popularizar Spark

Proyectos con Spark

Probablemente el Map Reduce de google esté basado en programación funcional

file = spark.textFile("hdfs://...")

file.flatMap(lambda line: line.split()).map(lambda word: (word, 1)).reduceByKey(lambda a, b: a+b)

Word count in Spark's Python API

Proyectos con Spark

Funcionamiento de Spark con Stratio explicado por Daniel Higuero en el segundo Spark Meetup de Madrid:

https://www.youtube.com/watch?v=0Ai9VuBGbpw&feature=youtu.be