SlideShare une entreprise Scribd logo
1  sur  44
Cloud Computing 
Jose Emilio Labra Gayo 
University of Oviedo, Spain 
http://www.di.uniovi.es/~labra
Esquema de la presentación 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Motivación 
Cloud Computing 
MapReduce
Motivación 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
La era de los datos 
Generación volúmenes de datos/día  
En 2009, récord de crecimiento (60%) 
Se estima en 800.000petabytes (1PB = 1millón GB) 
Fuente: IDC The digital Universe Decade: Are you ready? 
http://www.emc.com/collateral/demos/microsites/idc-digital-universe/iview.htm
Ejemplos de fuentes de datos 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Éxito de la web: 
Mayor participación si cabe en la Web 2.0 
Abaratamiento de dispositivos 
Cámaras digitales, Teléfonos móviles, etc. 
Youtube contiene unos 144 millones de vídeos* 
Redes sociales 
Facebook contenía 15 billones de fotos en 2009** 
* http://beerpla.net/2008/08/14/how-to-find-out-the-number-of-videos-on-youtube/ 
** http://www.facebook.com/note.php?note_id=76191543919
Otras fuentes de datos 
Aumento de Sensores y generadores 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Internet de las cosas 
Cada vez más dispositivos estarán conectados 
a Internet 
Frigorífico con Internet 
de datos 
http://www.youtube.com/watch?v=sfEbMV295Kk&feature=player_embedded
Grandes Centros de Datos 
Google, Yahoo!, Amazon, etc. 
Centro de datos de Yahoo! 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Cloud Computing 
Pegatina creada por Brian Fitzpatrick para 
Google Code Hosting en 2006
Cloud Computing 
Cloud computing = Servicios de grandes 
compañías (Google, Amazon,…) que 
pueden ser alquilados por clientes 
externos 
Ejemplos de servicios: 
Recursos computacionales (ciclos CPU) 
Almacenamiento 
Entornos de ejecución completos 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Ventajas 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Precio 
Amazon EC2 = Máquinas virtuales a 10¢/hora 
Amazon S3 = Almacenamiento 15¢/mes/Gb 
Algunos servicios = gratuitos! 
Escalabilidad 
Se paga en función del consumo 
Acceso a potentes centros de datos 
Facilidad de uso y mantenimiento
Ventajas 
Independencia dispositivos y localización 
Acceso desde cualquier navegador en 
cualquier sitio 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Eficiencia: 
Centralización de infraestructuras, ahorro de 
energía, control compartido de carga 
Fiabilidad: 
Réplicas, recuperación de desastres
Tipos de Cloud Computing 
No todas las nubes ofrecen todos los 
servicios 
Se podrían clasificar en: 
SaaS: Software as a Service 
PaaS: Platform as a Service 
IaaS: Infraestructure as a Service IaaS 
SaaS 
PaaS 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
IaaS: Infraestructura 
Se ofrecen recursos computacionales 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Capacidad de computación 
Almacenamiento 
Entorno virtualizado de máquinas 
conectadas por red 
Ejemplos: 
Eucalyptus, Amazon EC2, Amazon S3
PaaS: Plataforma 
Se ofrece una solución instalada y 
configurada como servicio (plataforma) 
Aplicaciones: 
Hosting para aplicaciones Web 
Entornos de desarrollo 
Facilitan despliegue rápido y barato 
Ejemplos: 
Google App Engine, VMForce, AppScale 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
SaaS: Software 
Aplicación software como servicio bajo 
demanda 
El usuario no tiene que instalar/configurar 
aplicaciones 
Reduce coste de adquisición de software 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Ejemplos: 
Aplicaciones Google (Gmail, GDocs, etc)
Retos de Cloud Computing 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Legalidad 
¿Almacenar datos en otros países? 
¿Y si no se cumple el servicio? 
Seguridad, privacidad 
¿Es más seguro tener los datos en nuestra 
máquina o en un data-center? 
Dependencia: ¿Nuevos monopolios? 
¿Interoperabilidad entre nubes? 
Sostenibilidad: ¿Consumo energético?
MapReduce 
Programando en la nube 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
MapReduce 
Pensado para procesar grandes cantidades 
de datos 
Programador especifica computación 
mediante 2 funciones: map y reduce 
Adaptado a ejecución distribuida en 
múltiples nodos 
Control de nodos que fallan, balance de carga, 
etc 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
MapReduce 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Desarrollado por Google 
Publicado en 2004 
Implementación interna propietaria 
Hadoop: implementación open source 
Versión inicial de Yahoo! 
Actualmente Proyecto Apache 
Adopción industrial 
Facebook, last.fm, etc.
Características de MapReduce 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Computaciones distribuidas 
Troceado de datos de entrada 
Tolerancia a fallos de nodos 
Portabilidad en nodos con hardware/software 
heterogéneo 
Procesado por lotes de grandes cantidades 
de datos 
Write-once. Read-many
Orígenes funcionales 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Programación funcional: 
Modelo de programación basado en: 
Ausencia de efectos laterales 
Funciones de orden superior 
Funciones similares a map y reduce llevan 
utilizándose mucho tiempo en 
programación funcional
Map en P. funcional 
Aplica una función a todos los elementos de 
una lista 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Lista de entrada 
función 
Lista de salida 
En Haskell: 
Calcular la longitud de todas las palabras de una lista 
> map length [“esto”, “es”, “un”, “ejemplo”] 
[4,2,2,7] 
Dar la vuelta a todas las palabras de una lista 
> map reverse ["esto","es","un","ejemplo"] 
["otse","se","nu","olpmeje“]
Reduce en P. funcional 
Transforma una lista en un valor 
combinando los elementos entre sí 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Lista de entrada 
Valor de salida 
En Haskell (reduce  fold) 
Suma de los elementos de una lista 
> foldr (+) 0 [1,2,3,4,5] 
15 
Producto de los elementos de una lista 
> foldr (*) 1 [1,2,3,4,5] 
120
MapReduce 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Inspirado en P. funcional: 
2 componentes: mapper y reducer 
Los datos se trocean para su procesamiento 
Cada dato asociado a una clave 
Transforma [(clave1,valor1)] en [(clave2,valor2)] 
c1 
Entrada: 
[(Clave1,Valor1)] 
v1 
c1 v1 
c1 v1 
Salida: 
[(Clave2,Valor2)] 
c2 v2 
c2 v2 
c2 v2 
c2 v2 
MapReduce
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Mapper 
Para cada (clave1,valor1) devuelve una 
lista de (clave2,valor2) 
Tipo: (clave1, valor1)  [(clave2,valor2)] 
c1 vi1 
c2 vi2 
c3 vi3 
k1 v1 
k2 v2 
k1 v3 
k3 v4 
k1 v5 
k1 v6 
k3 v7 
mapper 
mapper 
mapper
Mezcla y ordenación de claves 
El sistema se encarga de mezclar y ordenar 
resultados intermedios en función de las 
claves 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
k1 v1 
k2 v2 
k1 v3 
k3 v4 
k1 v5 
k1 v6 
k3 v7 
k1 v1 v3 v5 v6 
k2 v2 
k3 v4 v7 
Mezcla 
y 
ordena
Reducer 
Para cada clave2, toma la lista de valores 
asociada y los combina en uno solo 
Tipo: (clave2, [valor2])  (clave2,valor2) 
reducer vf1 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
k1 v1 v3 v5 v6 
k2 v2 
reducer 
k3 v4 v7 reducer 
vf2 
vf3 
k1 
k2 
k3
Esquema general 
reducer vf1 
reducer 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
c1 vi1 
c1 vi1 
mapper 
c1 vi1 mapper 
reducer 
vf2 
vf3 
k1 
k2 
k3 
mapper 
k1 v1 
k2 v2 
k1 v3 
k3 v4 
k1 v5 
k1 v6 
k3 v7 
k1 v1 v3 v5 v6 
k2 v2 
k3 v4 v7 
Mezcla 
y 
ordena 
MapReduce
Ejemplo: Cuenta palabras 
a 1 1 1 1 reducer 
reducer 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
d1 a b 
d2 a c a 
d3 a c 
4 
1 
2 
a 
b 
c 
a 1 
b 1 
a 1 
c 1 
a 1 
a 1 
c 1 
mapper 
mapper 
mapper 
reducer 
b 1 
c 1 1 
Mezcla 
y 
ordena 
MapReduce 
// devuelve cada palabra con un 1 
mapper(d,ps) { 
for each p in ps: 
emit (p, 1) 
} 
// suma la lista de números de cada palabra 
reducer(p,ns) { 
sum = 0 
for each n in ns { sum += n; } 
emit (p, sum) 
}
Sistema MapReduce 
El entorno de ejecución se encarga de 
Planificación: Cada trabajo (job) se divide en 
tareas (tasks) 
Co-localización de datos/código 
Cada nodo computacional contiene sus datos de 
forma local (no existe un sistema central) 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Sincronización: 
Tareas reduce deben esperar final de fase map 
Gestión de errores y fallos 
Alta tolerancia a fallos de los nodos 
computacionales
Sistema de ficheros distribuido 
Google desarrolló sistema distribuido GFS 
Hadoop creó HDFS 
Ficheros se dividen en bloques (chunks) 
2 tipos de nodos: 
Namenode (maestro), datanodes (servidores datos) 
Datanodes almacenan diferentes bloques 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Replicación de bloques 
Namenode contiene metadatos 
En qué nodo está cada trozo 
Comunicación directa entre clientes y datanodes
Sistema de ficheros distribuido 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Namenode 
fichero1: (B1 – N1 N2, B2 – N1 N2 N3) 
fichero2: (B3 – N2 N3, B4 – N1 N2) 
fichero3: (B5 – N1 N3) 
B1 B1 
B4 
B4 
B5 
B5 
B3 B3 
Cliente1 
Cliente2 
N1 N2 N3 
Datanodes 
B2 
B2 B2
Ejercicio: Índice Inverso 
Dada una serie de documentos, obtener la 
lista de palabras asociando a cada 
palabra el documento en el que aparece. 
Ordenar los documentos según el mayor 
número de apariciones 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Documento 1 
En un lugar de la Mancha , de 
cuyo nombre no quiero 
acordarme no ha mucho tiempo 
que vivía un hidalgo de los de 
lanza en astillero, adarga 
antigua, rocín flaco y galgo 
corredor. Una olla de algo más… 
Índice 
inverso 
lugar doc16, doc21, doc23, doc45 
Mancha doc22, doc2, doc4, doc9, doc11 
Quijote doc22, doc1, doc2, doc7 
. . .
Índice inverso: buscadores 
Esquema básico de un buscador 
consulta 
Búsqueda 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
P1 
P1 
DocuPm1 entos 
en caché 
Web 
crawling 
Web 
Indexado 
Índice 
palabra1 doc1, doc23, doc4,… 
palabra2 doc54,doc23 
palabra3 doc1,doc7,d1oc9,doc5... 
palabra4 doc7,doc9,doc10 
…
Índice inverso 
a d1 d2 d2 d3 reducer 
reducer 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
d1 a b 
d2 a c a 
d3 a c 
d2 
d1 
d2 
a 
b 
c 
a d1 
b d1 
a d2 
c d2 
a d2 
a d3 
c d3 
mapper 
mapper 
mapper 
reducer 
b d1 
c d2 d3 
Mezcla 
y 
ordena 
MapReduce 
// devuelve cada palabra con su 
// documento 
mapper(d,ps) { 
for each p in ps: 
emit (p, d) 
} 
// ordena la lista de documentos por 
// importancia 
reducer(p,ds) { 
ds1 = ordena(ds) 
emit (p, ds1) 
} 
d1 d3 
d3
Ejercicio: Canciones populares 
A partir de los logs de los usuarios de un 
servidor de música, obtener el número de 
veces que se escucha cada canción 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Inspirado en last.fm 
2/3/2010 9:41 Ana C1 
2/3/2010 9:42 Dani C2 
2/3/2010 9:44 Ana C2 
2/3/2010 10:01 Luis C1 
2/3/2010 10:10 Ana C3 
2/3/2010 10:15 Ana C2 
2/3/2010 10:20 Dani C2 
2/3/2010 10:21 Luis C4 
2/3/2010 10:24 Luis C2 
2/3/2010 10:26 Luis C4 
2/3/2010 10:27 Ana C4 
Analizador 
C1 2 oyentes, 2 escuchas 
C2 3 oyentes, 5 escuchas 
C3 2 oyentes, 2 escuchas 
C4 2 oyentes, 3 escuchas
Ejercicio: canciones populares 
reducer 
reducer 
reducer 
reducer 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
9:41 A C1 
MapReduce 
C1 2 
C2 3 
C3 1 
C4 2 
9:42 D C2 
9:44 A C2 
10:01 L C1 
10:10 A C3 
10:15 A C2 
10:20 D C2 
10:21 L C4 
10:24 L C2 
10:26 L C4 
2 
5 
3 
10:27 A C4 
mapper 
mapper 
mapper 
mapper 
C1 A 
C2 D 
C2 A 
C1 L 
C3 A 
C2 A 
C2 D 
C4 L 
C2 L 
C4 L 
C4 A 
C1 A C 
C2 D 
C3 A 
C4 L L 
Mezcla 
y 
ordena 
A A D L 
A
Ejercicio: Amigos comunes 
Encontrar la lista de amigos comunes 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Inspirado en Facebook 
Ana  Dani Juan Luis 
Dani  Ana Juan Luis Mar 
Juan  Ana Dani Luis Mar 
Luis  Ana Dani Juan Mar 
Mar  Dani Juan Luis 
Dani 
Juan 
Ana 
Luis 
Mar 
Si Ana visita la página de Juan, el sistema debería mostrar Dani, Luis
Ejercicio: Amigos comunes 
reducer 
reducer 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
A D J L 
D A J L M 
J A D L M 
reducer 
MapReduce 
L A D J M 
M D J L 
A D D J L 
A J D J L 
A L D J L 
A D A J L M 
D J 
D L 
D M 
mapper 
mapper 
mapper 
mapper 
A J L M 
A J L M 
A J L M 
A J A D L M 
D J 
J L 
J M 
A D L M 
A D L M 
A D L M 
A L A D J M 
D L 
J L 
L M 
A D J M 
A D J M 
A D J M 
D M D J L 
mapper J M D J L 
L M D J L 
reducer 
reducer 
reducer 
reducer 
reducer 
reducer 
A D J L 
A J D L 
A L D J 
D J A L M 
D L A J M 
D M J L 
J L A D M 
J M D L 
L M D J 
A D D J L A J L M 
A J D J L A D L M 
A L D J L A D J M 
D J A J L M A D L M 
D L A J L M A D J M 
D M A J L M D J L 
J L A D L M A D J M 
J M A D L M D J L 
L M A D J M D J L 
Mezcla 
y 
ordena
Ejercicio: Similaridad 
A partir de los logs, encontrar número de 
canciones en común entre 2 usuarios 
Inspirado en Amazon (libros similares), 
Facebook (posibles amigos), etc. 
Habitualmente se realizan varios pasos 
mapReduce 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
MapReduce2 
Ejemplo: Similaridad 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
9:41 A C1 
9:42 D C2 
9:44 A C2 
10:01 L C1 
10:10 A C3 
10:15 A C2 
10:20 D C2 
10:21 L C4 
10:24 L C2 
10:26 L C4 
10:27 A C4 
A C C1, 1 
A D C2, 2 
A L C2, 1 
A L 
mapper 
mapper 
C4, 2 
A C C1, 1 
A D C2, 2 
A L C2 1 C4 2 
Mezcla 
y 
ordena 
reducer 
reducer 
reducer 
A C 1 
A D 2 
A L 3 
C1 A C 
C2 D 
C3 A 
A A D L 
C4 L L 
A 
MapReduce1
MapReduce en la práctica 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 
Múltiples aplicaciones: 
Google en 2007, 20petabytes al día, en una 
media de 100mil trabajos mapreduce/día 
El algoritmo PageRank puede implementarse 
mediante MapReduce 
Casos de éxito: 
Traducción automática, Similaridad entre ítems, 
ordenamiento (Hadoop ordena 500GB/59sg (véase: 
sortbenchmark.org) 
Otras compañías: last.fm, facebook, Yahoo!, 
twitter, etc.
Implementaciones MapReduce 
Google (interna) 
Hadoop (open source) 
CloudMapReduce (basado en servicios de 
Amazon) 
Aster Data (SQL) 
Greenplum (SQL) 
Disco (Python/Erlang) 
Holumbus (Haskell) 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Librerías/lenguajes MapReduce 
Hive (Hadoop): lenguaje de consulta 
inspirado en SQL 
Pig (Hadoop): lenguaje específico para 
definir flujos de datos 
Cascading: API para especificar flujos de 
datos distribuidos 
Flume Java (Google) 
Dryad (Microsoft) 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Agradecimientos 
Parte del contenido de esta presentación ha 
sido tomado de otras presentaciones 
similares de: 
Jimmy Lin 
Jeff Dean 
Jose Manuel Redondo 
Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Contenu connexe

Similaire à Cloud Computing y MapReduce

Visualizando Datos: la geolocalización como herramienta emergente de análisis...
Visualizando Datos: la geolocalización como herramienta emergente de análisis...Visualizando Datos: la geolocalización como herramienta emergente de análisis...
Visualizando Datos: la geolocalización como herramienta emergente de análisis...GEDEM CED
 
Hadoop, Cloud y Spring
Hadoop, Cloud y Spring Hadoop, Cloud y Spring
Hadoop, Cloud y Spring Miguel Pastor
 
Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...Joseph Lopez
 
Seminario ArcGIS Desktop 10: La Pieza Clave del SIG
Seminario ArcGIS Desktop 10: La Pieza Clave del SIGSeminario ArcGIS Desktop 10: La Pieza Clave del SIG
Seminario ArcGIS Desktop 10: La Pieza Clave del SIGEsri
 
Balotario resuelto
Balotario resueltoBalotario resuelto
Balotario resueltoAlexiToxD
 
Cluster Multinodo en Apache Hadoop - Arquitectura Lambda
Cluster Multinodo en Apache Hadoop - Arquitectura LambdaCluster Multinodo en Apache Hadoop - Arquitectura Lambda
Cluster Multinodo en Apache Hadoop - Arquitectura LambdaMiguel Angel Macias
 
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...Joseph Lopez
 
Desarrollo a aplicaciones . net (1)
Desarrollo a aplicaciones . net (1)Desarrollo a aplicaciones . net (1)
Desarrollo a aplicaciones . net (1)jenny21071
 
Revelando los secretos de twitter, Festival de Software Libre 2014
Revelando los secretos de twitter, Festival de Software Libre 2014Revelando los secretos de twitter, Festival de Software Libre 2014
Revelando los secretos de twitter, Festival de Software Libre 2014Abel Alejandro Coronado Iruegas
 
Curso de R: 1.1. introducción al lenguaje (Objetos y operadores básicos)
Curso de R: 1.1. introducción al lenguaje (Objetos y operadores básicos)Curso de R: 1.1. introducción al lenguaje (Objetos y operadores básicos)
Curso de R: 1.1. introducción al lenguaje (Objetos y operadores básicos)Nerys Ramírez Mordán
 

Similaire à Cloud Computing y MapReduce (20)

Visualizando Datos: la geolocalización como herramienta emergente de análisis...
Visualizando Datos: la geolocalización como herramienta emergente de análisis...Visualizando Datos: la geolocalización como herramienta emergente de análisis...
Visualizando Datos: la geolocalización como herramienta emergente de análisis...
 
Computación distribuida usando Python
Computación distribuida usando PythonComputación distribuida usando Python
Computación distribuida usando Python
 
Hadoop, Cloud y Spring
Hadoop, Cloud y Spring Hadoop, Cloud y Spring
Hadoop, Cloud y Spring
 
SMBD 2011
SMBD 2011SMBD 2011
SMBD 2011
 
SMBD 2011
SMBD 2011SMBD 2011
SMBD 2011
 
Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...
 
mapreduce.pptx
mapreduce.pptxmapreduce.pptx
mapreduce.pptx
 
Actividad 6
Actividad 6Actividad 6
Actividad 6
 
Actividad 6
Actividad 6Actividad 6
Actividad 6
 
Actividad 6
Actividad 6Actividad 6
Actividad 6
 
Seminario ArcGIS Desktop 10: La Pieza Clave del SIG
Seminario ArcGIS Desktop 10: La Pieza Clave del SIGSeminario ArcGIS Desktop 10: La Pieza Clave del SIG
Seminario ArcGIS Desktop 10: La Pieza Clave del SIG
 
Balotario resuelto
Balotario resueltoBalotario resuelto
Balotario resuelto
 
Manual visual fox pro
Manual visual fox proManual visual fox pro
Manual visual fox pro
 
Cluster Multinodo en Apache Hadoop - Arquitectura Lambda
Cluster Multinodo en Apache Hadoop - Arquitectura LambdaCluster Multinodo en Apache Hadoop - Arquitectura Lambda
Cluster Multinodo en Apache Hadoop - Arquitectura Lambda
 
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
 
Introducción a hadoop
Introducción a hadoopIntroducción a hadoop
Introducción a hadoop
 
Desarrollo a aplicaciones . net (1)
Desarrollo a aplicaciones . net (1)Desarrollo a aplicaciones . net (1)
Desarrollo a aplicaciones . net (1)
 
Revelando los secretos de twitter, Festival de Software Libre 2014
Revelando los secretos de twitter, Festival de Software Libre 2014Revelando los secretos de twitter, Festival de Software Libre 2014
Revelando los secretos de twitter, Festival de Software Libre 2014
 
Curso de R: 1.1. introducción al lenguaje (Objetos y operadores básicos)
Curso de R: 1.1. introducción al lenguaje (Objetos y operadores básicos)Curso de R: 1.1. introducción al lenguaje (Objetos y operadores básicos)
Curso de R: 1.1. introducción al lenguaje (Objetos y operadores básicos)
 
Clase Hadoop
Clase HadoopClase Hadoop
Clase Hadoop
 

Plus de Jose Emilio Labra Gayo

Introducción a la investigación/doctorado
Introducción a la investigación/doctoradoIntroducción a la investigación/doctorado
Introducción a la investigación/doctoradoJose Emilio Labra Gayo
 
Challenges and applications of RDF shapes
Challenges and applications of RDF shapesChallenges and applications of RDF shapes
Challenges and applications of RDF shapesJose Emilio Labra Gayo
 
Legislative data portals and linked data quality
Legislative data portals and linked data qualityLegislative data portals and linked data quality
Legislative data portals and linked data qualityJose Emilio Labra Gayo
 
Validating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectivesValidating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectivesJose Emilio Labra Gayo
 
Legislative document content extraction based on Semantic Web technologies
Legislative document content extraction based on Semantic Web technologiesLegislative document content extraction based on Semantic Web technologies
Legislative document content extraction based on Semantic Web technologiesJose Emilio Labra Gayo
 
Como publicar datos: hacia los datos abiertos enlazados
Como publicar datos: hacia los datos abiertos enlazadosComo publicar datos: hacia los datos abiertos enlazados
Como publicar datos: hacia los datos abiertos enlazadosJose Emilio Labra Gayo
 
Arquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el ServidorArquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el ServidorJose Emilio Labra Gayo
 

Plus de Jose Emilio Labra Gayo (20)

Publicaciones de investigación
Publicaciones de investigaciónPublicaciones de investigación
Publicaciones de investigación
 
Introducción a la investigación/doctorado
Introducción a la investigación/doctoradoIntroducción a la investigación/doctorado
Introducción a la investigación/doctorado
 
Challenges and applications of RDF shapes
Challenges and applications of RDF shapesChallenges and applications of RDF shapes
Challenges and applications of RDF shapes
 
Legislative data portals and linked data quality
Legislative data portals and linked data qualityLegislative data portals and linked data quality
Legislative data portals and linked data quality
 
Validating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectivesValidating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectives
 
Wikidata
WikidataWikidata
Wikidata
 
Legislative document content extraction based on Semantic Web technologies
Legislative document content extraction based on Semantic Web technologiesLegislative document content extraction based on Semantic Web technologies
Legislative document content extraction based on Semantic Web technologies
 
ShEx by Example
ShEx by ExampleShEx by Example
ShEx by Example
 
Introduction to SPARQL
Introduction to SPARQLIntroduction to SPARQL
Introduction to SPARQL
 
Introducción a la Web Semántica
Introducción a la Web SemánticaIntroducción a la Web Semántica
Introducción a la Web Semántica
 
RDF Data Model
RDF Data ModelRDF Data Model
RDF Data Model
 
2017 Tendencias en informática
2017 Tendencias en informática2017 Tendencias en informática
2017 Tendencias en informática
 
RDF, linked data and semantic web
RDF, linked data and semantic webRDF, linked data and semantic web
RDF, linked data and semantic web
 
Introduction to SPARQL
Introduction to SPARQLIntroduction to SPARQL
Introduction to SPARQL
 
19 javascript servidor
19 javascript servidor19 javascript servidor
19 javascript servidor
 
Como publicar datos: hacia los datos abiertos enlazados
Como publicar datos: hacia los datos abiertos enlazadosComo publicar datos: hacia los datos abiertos enlazados
Como publicar datos: hacia los datos abiertos enlazados
 
16 Alternativas XML
16 Alternativas XML16 Alternativas XML
16 Alternativas XML
 
XSLT
XSLTXSLT
XSLT
 
XPath
XPathXPath
XPath
 
Arquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el ServidorArquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el Servidor
 

Dernier

PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptxPRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptxRodriguezLucero
 
Tema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptxTema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptxchinojosa17
 
El uso de las tic en la vida continúa , ambiente positivo y negativo.
El uso de las tic  en la vida continúa , ambiente positivo y negativo.El uso de las tic  en la vida continúa , ambiente positivo y negativo.
El uso de las tic en la vida continúa , ambiente positivo y negativo.ayalayenifer617
 
Producto académico 03 - Habilidades Comunicativas.pptx
Producto académico 03 - Habilidades Comunicativas.pptxProducto académico 03 - Habilidades Comunicativas.pptx
Producto académico 03 - Habilidades Comunicativas.pptx46828205
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfOscarBlas6
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdfFAUSTODANILOCRUZCAST
 
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxrodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxssuser61dda7
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAdanielaerazok
 
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsxactividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx241532171
 
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULDGRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULDLeslie Villar
 
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIAFisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIAcoloncopias5
 
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdfFLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdfYuriFuentesMartinez2
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenajuniorcuellargomez
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenadanielaerazok
 
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdfFernandaHernandez312615
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webDecaunlz
 
3Mayo2023 Taller construcción de Prototipos.pptx
3Mayo2023 Taller construcción de Prototipos.pptx3Mayo2023 Taller construcción de Prototipos.pptx
3Mayo2023 Taller construcción de Prototipos.pptxadso2024sena
 
GRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptxGRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptxNicolas Villarroel
 
CamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptxCamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptx241518192
 

Dernier (19)

PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptxPRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
 
Tema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptxTema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptx
 
El uso de las tic en la vida continúa , ambiente positivo y negativo.
El uso de las tic  en la vida continúa , ambiente positivo y negativo.El uso de las tic  en la vida continúa , ambiente positivo y negativo.
El uso de las tic en la vida continúa , ambiente positivo y negativo.
 
Producto académico 03 - Habilidades Comunicativas.pptx
Producto académico 03 - Habilidades Comunicativas.pptxProducto académico 03 - Habilidades Comunicativas.pptx
Producto académico 03 - Habilidades Comunicativas.pptx
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdf
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdf
 
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxrodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
 
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsxactividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
 
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULDGRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
 
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIAFisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIA
 
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdfFLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalena
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalena
 
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la web
 
3Mayo2023 Taller construcción de Prototipos.pptx
3Mayo2023 Taller construcción de Prototipos.pptx3Mayo2023 Taller construcción de Prototipos.pptx
3Mayo2023 Taller construcción de Prototipos.pptx
 
GRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptxGRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptx
 
CamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptxCamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptx
 

Cloud Computing y MapReduce

  • 1. Cloud Computing Jose Emilio Labra Gayo University of Oviedo, Spain http://www.di.uniovi.es/~labra
  • 2. Esquema de la presentación Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Motivación Cloud Computing MapReduce
  • 3. Motivación Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra La era de los datos Generación volúmenes de datos/día  En 2009, récord de crecimiento (60%) Se estima en 800.000petabytes (1PB = 1millón GB) Fuente: IDC The digital Universe Decade: Are you ready? http://www.emc.com/collateral/demos/microsites/idc-digital-universe/iview.htm
  • 4. Ejemplos de fuentes de datos Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Éxito de la web: Mayor participación si cabe en la Web 2.0 Abaratamiento de dispositivos Cámaras digitales, Teléfonos móviles, etc. Youtube contiene unos 144 millones de vídeos* Redes sociales Facebook contenía 15 billones de fotos en 2009** * http://beerpla.net/2008/08/14/how-to-find-out-the-number-of-videos-on-youtube/ ** http://www.facebook.com/note.php?note_id=76191543919
  • 5. Otras fuentes de datos Aumento de Sensores y generadores Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Internet de las cosas Cada vez más dispositivos estarán conectados a Internet Frigorífico con Internet de datos http://www.youtube.com/watch?v=sfEbMV295Kk&feature=player_embedded
  • 6. Grandes Centros de Datos Google, Yahoo!, Amazon, etc. Centro de datos de Yahoo! Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
  • 7. Cloud Computing Pegatina creada por Brian Fitzpatrick para Google Code Hosting en 2006
  • 8. Cloud Computing Cloud computing = Servicios de grandes compañías (Google, Amazon,…) que pueden ser alquilados por clientes externos Ejemplos de servicios: Recursos computacionales (ciclos CPU) Almacenamiento Entornos de ejecución completos Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
  • 9. Ventajas Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Precio Amazon EC2 = Máquinas virtuales a 10¢/hora Amazon S3 = Almacenamiento 15¢/mes/Gb Algunos servicios = gratuitos! Escalabilidad Se paga en función del consumo Acceso a potentes centros de datos Facilidad de uso y mantenimiento
  • 10. Ventajas Independencia dispositivos y localización Acceso desde cualquier navegador en cualquier sitio Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Eficiencia: Centralización de infraestructuras, ahorro de energía, control compartido de carga Fiabilidad: Réplicas, recuperación de desastres
  • 11. Tipos de Cloud Computing No todas las nubes ofrecen todos los servicios Se podrían clasificar en: SaaS: Software as a Service PaaS: Platform as a Service IaaS: Infraestructure as a Service IaaS SaaS PaaS Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
  • 12. IaaS: Infraestructura Se ofrecen recursos computacionales Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Capacidad de computación Almacenamiento Entorno virtualizado de máquinas conectadas por red Ejemplos: Eucalyptus, Amazon EC2, Amazon S3
  • 13. PaaS: Plataforma Se ofrece una solución instalada y configurada como servicio (plataforma) Aplicaciones: Hosting para aplicaciones Web Entornos de desarrollo Facilitan despliegue rápido y barato Ejemplos: Google App Engine, VMForce, AppScale Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
  • 14. SaaS: Software Aplicación software como servicio bajo demanda El usuario no tiene que instalar/configurar aplicaciones Reduce coste de adquisición de software Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Ejemplos: Aplicaciones Google (Gmail, GDocs, etc)
  • 15. Retos de Cloud Computing Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Legalidad ¿Almacenar datos en otros países? ¿Y si no se cumple el servicio? Seguridad, privacidad ¿Es más seguro tener los datos en nuestra máquina o en un data-center? Dependencia: ¿Nuevos monopolios? ¿Interoperabilidad entre nubes? Sostenibilidad: ¿Consumo energético?
  • 16. MapReduce Programando en la nube Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
  • 17. MapReduce Pensado para procesar grandes cantidades de datos Programador especifica computación mediante 2 funciones: map y reduce Adaptado a ejecución distribuida en múltiples nodos Control de nodos que fallan, balance de carga, etc Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
  • 18. MapReduce Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Desarrollado por Google Publicado en 2004 Implementación interna propietaria Hadoop: implementación open source Versión inicial de Yahoo! Actualmente Proyecto Apache Adopción industrial Facebook, last.fm, etc.
  • 19. Características de MapReduce Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Computaciones distribuidas Troceado de datos de entrada Tolerancia a fallos de nodos Portabilidad en nodos con hardware/software heterogéneo Procesado por lotes de grandes cantidades de datos Write-once. Read-many
  • 20. Orígenes funcionales Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Programación funcional: Modelo de programación basado en: Ausencia de efectos laterales Funciones de orden superior Funciones similares a map y reduce llevan utilizándose mucho tiempo en programación funcional
  • 21. Map en P. funcional Aplica una función a todos los elementos de una lista Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Lista de entrada función Lista de salida En Haskell: Calcular la longitud de todas las palabras de una lista > map length [“esto”, “es”, “un”, “ejemplo”] [4,2,2,7] Dar la vuelta a todas las palabras de una lista > map reverse ["esto","es","un","ejemplo"] ["otse","se","nu","olpmeje“]
  • 22. Reduce en P. funcional Transforma una lista en un valor combinando los elementos entre sí Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Lista de entrada Valor de salida En Haskell (reduce  fold) Suma de los elementos de una lista > foldr (+) 0 [1,2,3,4,5] 15 Producto de los elementos de una lista > foldr (*) 1 [1,2,3,4,5] 120
  • 23. MapReduce Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Inspirado en P. funcional: 2 componentes: mapper y reducer Los datos se trocean para su procesamiento Cada dato asociado a una clave Transforma [(clave1,valor1)] en [(clave2,valor2)] c1 Entrada: [(Clave1,Valor1)] v1 c1 v1 c1 v1 Salida: [(Clave2,Valor2)] c2 v2 c2 v2 c2 v2 c2 v2 MapReduce
  • 24. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Mapper Para cada (clave1,valor1) devuelve una lista de (clave2,valor2) Tipo: (clave1, valor1)  [(clave2,valor2)] c1 vi1 c2 vi2 c3 vi3 k1 v1 k2 v2 k1 v3 k3 v4 k1 v5 k1 v6 k3 v7 mapper mapper mapper
  • 25. Mezcla y ordenación de claves El sistema se encarga de mezclar y ordenar resultados intermedios en función de las claves Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra k1 v1 k2 v2 k1 v3 k3 v4 k1 v5 k1 v6 k3 v7 k1 v1 v3 v5 v6 k2 v2 k3 v4 v7 Mezcla y ordena
  • 26. Reducer Para cada clave2, toma la lista de valores asociada y los combina en uno solo Tipo: (clave2, [valor2])  (clave2,valor2) reducer vf1 Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra k1 v1 v3 v5 v6 k2 v2 reducer k3 v4 v7 reducer vf2 vf3 k1 k2 k3
  • 27. Esquema general reducer vf1 reducer Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra c1 vi1 c1 vi1 mapper c1 vi1 mapper reducer vf2 vf3 k1 k2 k3 mapper k1 v1 k2 v2 k1 v3 k3 v4 k1 v5 k1 v6 k3 v7 k1 v1 v3 v5 v6 k2 v2 k3 v4 v7 Mezcla y ordena MapReduce
  • 28. Ejemplo: Cuenta palabras a 1 1 1 1 reducer reducer Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra d1 a b d2 a c a d3 a c 4 1 2 a b c a 1 b 1 a 1 c 1 a 1 a 1 c 1 mapper mapper mapper reducer b 1 c 1 1 Mezcla y ordena MapReduce // devuelve cada palabra con un 1 mapper(d,ps) { for each p in ps: emit (p, 1) } // suma la lista de números de cada palabra reducer(p,ns) { sum = 0 for each n in ns { sum += n; } emit (p, sum) }
  • 29. Sistema MapReduce El entorno de ejecución se encarga de Planificación: Cada trabajo (job) se divide en tareas (tasks) Co-localización de datos/código Cada nodo computacional contiene sus datos de forma local (no existe un sistema central) Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Sincronización: Tareas reduce deben esperar final de fase map Gestión de errores y fallos Alta tolerancia a fallos de los nodos computacionales
  • 30. Sistema de ficheros distribuido Google desarrolló sistema distribuido GFS Hadoop creó HDFS Ficheros se dividen en bloques (chunks) 2 tipos de nodos: Namenode (maestro), datanodes (servidores datos) Datanodes almacenan diferentes bloques Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Replicación de bloques Namenode contiene metadatos En qué nodo está cada trozo Comunicación directa entre clientes y datanodes
  • 31. Sistema de ficheros distribuido Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Namenode fichero1: (B1 – N1 N2, B2 – N1 N2 N3) fichero2: (B3 – N2 N3, B4 – N1 N2) fichero3: (B5 – N1 N3) B1 B1 B4 B4 B5 B5 B3 B3 Cliente1 Cliente2 N1 N2 N3 Datanodes B2 B2 B2
  • 32. Ejercicio: Índice Inverso Dada una serie de documentos, obtener la lista de palabras asociando a cada palabra el documento en el que aparece. Ordenar los documentos según el mayor número de apariciones Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Documento 1 En un lugar de la Mancha , de cuyo nombre no quiero acordarme no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor. Una olla de algo más… Índice inverso lugar doc16, doc21, doc23, doc45 Mancha doc22, doc2, doc4, doc9, doc11 Quijote doc22, doc1, doc2, doc7 . . .
  • 33. Índice inverso: buscadores Esquema básico de un buscador consulta Búsqueda Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra P1 P1 DocuPm1 entos en caché Web crawling Web Indexado Índice palabra1 doc1, doc23, doc4,… palabra2 doc54,doc23 palabra3 doc1,doc7,d1oc9,doc5... palabra4 doc7,doc9,doc10 …
  • 34. Índice inverso a d1 d2 d2 d3 reducer reducer Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra d1 a b d2 a c a d3 a c d2 d1 d2 a b c a d1 b d1 a d2 c d2 a d2 a d3 c d3 mapper mapper mapper reducer b d1 c d2 d3 Mezcla y ordena MapReduce // devuelve cada palabra con su // documento mapper(d,ps) { for each p in ps: emit (p, d) } // ordena la lista de documentos por // importancia reducer(p,ds) { ds1 = ordena(ds) emit (p, ds1) } d1 d3 d3
  • 35. Ejercicio: Canciones populares A partir de los logs de los usuarios de un servidor de música, obtener el número de veces que se escucha cada canción Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Inspirado en last.fm 2/3/2010 9:41 Ana C1 2/3/2010 9:42 Dani C2 2/3/2010 9:44 Ana C2 2/3/2010 10:01 Luis C1 2/3/2010 10:10 Ana C3 2/3/2010 10:15 Ana C2 2/3/2010 10:20 Dani C2 2/3/2010 10:21 Luis C4 2/3/2010 10:24 Luis C2 2/3/2010 10:26 Luis C4 2/3/2010 10:27 Ana C4 Analizador C1 2 oyentes, 2 escuchas C2 3 oyentes, 5 escuchas C3 2 oyentes, 2 escuchas C4 2 oyentes, 3 escuchas
  • 36. Ejercicio: canciones populares reducer reducer reducer reducer Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 9:41 A C1 MapReduce C1 2 C2 3 C3 1 C4 2 9:42 D C2 9:44 A C2 10:01 L C1 10:10 A C3 10:15 A C2 10:20 D C2 10:21 L C4 10:24 L C2 10:26 L C4 2 5 3 10:27 A C4 mapper mapper mapper mapper C1 A C2 D C2 A C1 L C3 A C2 A C2 D C4 L C2 L C4 L C4 A C1 A C C2 D C3 A C4 L L Mezcla y ordena A A D L A
  • 37. Ejercicio: Amigos comunes Encontrar la lista de amigos comunes Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Inspirado en Facebook Ana  Dani Juan Luis Dani  Ana Juan Luis Mar Juan  Ana Dani Luis Mar Luis  Ana Dani Juan Mar Mar  Dani Juan Luis Dani Juan Ana Luis Mar Si Ana visita la página de Juan, el sistema debería mostrar Dani, Luis
  • 38. Ejercicio: Amigos comunes reducer reducer Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra A D J L D A J L M J A D L M reducer MapReduce L A D J M M D J L A D D J L A J D J L A L D J L A D A J L M D J D L D M mapper mapper mapper mapper A J L M A J L M A J L M A J A D L M D J J L J M A D L M A D L M A D L M A L A D J M D L J L L M A D J M A D J M A D J M D M D J L mapper J M D J L L M D J L reducer reducer reducer reducer reducer reducer A D J L A J D L A L D J D J A L M D L A J M D M J L J L A D M J M D L L M D J A D D J L A J L M A J D J L A D L M A L D J L A D J M D J A J L M A D L M D L A J L M A D J M D M A J L M D J L J L A D L M A D J M J M A D L M D J L L M A D J M D J L Mezcla y ordena
  • 39. Ejercicio: Similaridad A partir de los logs, encontrar número de canciones en común entre 2 usuarios Inspirado en Amazon (libros similares), Facebook (posibles amigos), etc. Habitualmente se realizan varios pasos mapReduce Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
  • 40. MapReduce2 Ejemplo: Similaridad Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra 9:41 A C1 9:42 D C2 9:44 A C2 10:01 L C1 10:10 A C3 10:15 A C2 10:20 D C2 10:21 L C4 10:24 L C2 10:26 L C4 10:27 A C4 A C C1, 1 A D C2, 2 A L C2, 1 A L mapper mapper C4, 2 A C C1, 1 A D C2, 2 A L C2 1 C4 2 Mezcla y ordena reducer reducer reducer A C 1 A D 2 A L 3 C1 A C C2 D C3 A A A D L C4 L L A MapReduce1
  • 41. MapReduce en la práctica Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Múltiples aplicaciones: Google en 2007, 20petabytes al día, en una media de 100mil trabajos mapreduce/día El algoritmo PageRank puede implementarse mediante MapReduce Casos de éxito: Traducción automática, Similaridad entre ítems, ordenamiento (Hadoop ordena 500GB/59sg (véase: sortbenchmark.org) Otras compañías: last.fm, facebook, Yahoo!, twitter, etc.
  • 42. Implementaciones MapReduce Google (interna) Hadoop (open source) CloudMapReduce (basado en servicios de Amazon) Aster Data (SQL) Greenplum (SQL) Disco (Python/Erlang) Holumbus (Haskell) Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
  • 43. Librerías/lenguajes MapReduce Hive (Hadoop): lenguaje de consulta inspirado en SQL Pig (Hadoop): lenguaje específico para definir flujos de datos Cascading: API para especificar flujos de datos distribuidos Flume Java (Google) Dryad (Microsoft) Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
  • 44. Agradecimientos Parte del contenido de esta presentación ha sido tomado de otras presentaciones similares de: Jimmy Lin Jeff Dean Jose Manuel Redondo Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra