cloud computing y mapreduce

44
Cloud Computing Jose Emilio Labra Gayo University of Oviedo, Spain http://www.di.uniovi.es/~labra

Upload: jose-emilio-labra-gayo

Post on 20-Aug-2015

3.069 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Cloud Computing y MapReduce

Cloud Computing

Jose Emilio Labra Gayo

University of Oviedo, Spainhttp://www.di.uniovi.es/~labra

Page 2: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Esquema de la presentación

Motivación

Cloud Computing

MapReduce

Page 3: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Motivación

La era de los datosGeneració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

Page 4: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Ejemplos de fuentes de datos

Éxito de la web:Mayor participación si cabe en la Web 2.0

Abaratamiento de dispositivosCámaras digitales, Teléfonos móviles, etc.

Youtube contiene unos 144 millones de vídeos*

Redes socialesFacebook 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

Page 5: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Otras fuentes de datos

Internet de las cosasCada vez más dispositivos estarán conectados

a Internet

Frigorífico con Internet

http://www.youtube.com/watch?v=sfEbMV295Kk&feature=player_embedded

Aumento de Sensores y generadores de datos

Acelerador de partículas LHC producirá 15

petabytes de datos al añohttp://public.web.cern.ch/public/en/lhc/Computing-en.html

Page 6: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Grandes Centros de Datos

Google, Yahoo!, Amazon, etc.

Centro de datos de Yahoo!

Page 7: Cloud Computing y MapReduce

Cloud Computing

Pegatina creada por Brian Fitzpatrick para Google Code Hosting en 2006

Page 8: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

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

Page 9: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Ventajas

PrecioAmazon EC2 = Máquinas virtuales a 10¢/hora

Amazon S3 = Almacenamiento 15¢/mes/Gb

Algunos servicios = gratuitos!

EscalabilidadSe paga en función del consumo

Acceso a potentes centros de datos

Facilidad de uso y mantenimiento

Page 10: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Ventajas

Independencia dispositivos y localizaciónAcceso desde cualquier navegador en

cualquier sitio

Eficiencia: Centralización de infraestructuras, ahorro de

energía, control compartido de carga

Fiabilidad: Réplicas, recuperación de desastres

Page 11: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

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

PaaS

SaaS

Page 12: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

IaaS: Infraestructura

Se ofrecen recursos computacionalesCapacidad de computación

Almacenamiento

Entorno virtualizado de máquinas conectadas por redEjemplos:

Eucalyptus, Amazon EC2, Amazon S3

Page 13: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

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

Page 14: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

SaaS: Software

Aplicación software como servicio bajo demandaEl usuario no tiene que instalar/configurar

aplicaciones

Reduce coste de adquisición de software

Ejemplos: Aplicaciones Google (Gmail, GDocs, etc)

Page 15: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Retos de Cloud Computing

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?

Page 16: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

MapReduceProgramando en la nube

Page 17: Cloud Computing y MapReduce

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 nodosControl de nodos que fallan, balance de carga,

etc

Page 18: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

MapReduce

Desarrollado por GooglePublicado en 2004

Implementación interna propietaria

Hadoop: implementación open sourceVersión inicial de Yahoo!

Actualmente Proyecto Apache

Adopción industrialFacebook, last.fm, etc.

Page 19: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Características de MapReduce

Computaciones distribuidasTroceado de datos de entrada

Tolerancia a fallos de nodos

Portabilidad en nodos con hardware/software heterogéneo

Procesado por lotes de grandes cantidades de datosWrite-once. Read-many

Page 20: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Orígenes funcionales

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

Page 21: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Map en P. funcional

Lista de entrada

Lista de salida

Aplica una función a todos los elementos de una lista

función

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“]

En Haskell:

Page 22: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Reduce en P. funcional

Lista de entrada

Valor de salida

Transforma una lista en un valor combinando los elementos entre sí

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

En Haskell (reduce fold)

Page 23: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

MapReduce

Inspirado en P. funcional: 2 componentes: mapper y reducer

Los datos se trocean para su procesamiento

Cada dato asociado a una claveTransforma [(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

Page 24: Cloud Computing y 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 v7mapper

mapper

mapper

Page 25: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Mezcla y ordenación de claves

El sistema se encarga de mezclar y ordenar resultados intermedios en función de las claves

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

Page 26: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Reducer

Para cada clave2, toma la lista de valores asociada y los combina en uno solo

Tipo: (clave2, [valor2]) (clave2,valor2)

k1 v1 v3 v5 v6

k2 v2

k3 v4 v7 reducer

reducer

reducer vf1

vf2

vf3

k1

k2

k3

Page 27: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Esquema general

c1 vi1

c1 vi1

c1 vi1 mapperreducer

reducer

reducer vf1

vf2

vf3

k1

k2

k3

mapper

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

Page 28: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Ejemplo: Cuenta palabras

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 1mapper

mapper

mapper

reducer

reducer

reducera 1 1 1 1

b 1

c 1 1

Mezcla y

ordena

MapReduce

// devuelve cada palabra con un 1mapper(d,ps) { for each p in ps: emit (p, 1)}

// suma la lista de números de cada palabrareducer(p,ns) { sum = 0 for each n in ns { sum += n; } emit (p, sum)}

Page 29: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Sistema MapReduce

El entorno de ejecución se encarga dePlanificación: Cada trabajo (job) se divide en

tareas (tasks)

Co-localización de datos/códigoCada nodo computacional contiene sus datos de

forma local (no existe un sistema central)

Sincronización: Tareas reduce deben esperar final de fase map

Gestión de errores y fallosAlta tolerancia a fallos de los nodos

computacionales

Page 30: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Sistema de ficheros distribuido

Google desarrolló sistema distribuido GFS

Hadoop creó HDFSFicheros se dividen en bloques (chunks)

2 tipos de nodos: Namenode (maestro), datanodes (servidores datos)

Datanodes almacenan diferentes bloquesReplicación de bloques

Namenode contiene metadatosEn qué nodo está cada trozo

Comunicación directa entre clientes y datanodes

Page 31: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Sistema de ficheros distribuido

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

DatanodesB2

B2 B2

Datos publicados por Google (2007)

200+ clusters

Muchos clusters de 1000+ máquinas

Pools de miles de clientes

4+ PB

Tolerancia fallos de HW/SW

Page 32: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

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

Documento 1En 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, doc45Mancha doc22, doc2, doc4, doc9, doc11Quijote doc22, doc1, doc2, doc7

. . .

Page 33: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Índice inverso: buscadores

Esquema básico de un buscador

P1P1

P1Documentosen caché

Web crawling

WebIndexado

Índice

palabra1 doc1, doc23, doc4,…palabra2 doc54,doc23palabra3 doc1,doc7,d1oc9,doc5...palabra4 doc7,doc9,doc10…

consulta

Búsqueda

Page 34: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Índice inverso

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 d3mapper

mapper

mapper

reducer

reducer

reducera d1 d2 d2 d3

b d1

c d2 d3

Mezcla y

ordena

MapReduce

// devuelve cada palabra con su // documentomapper(d,ps) { for each p in ps: emit (p, d)}

// ordena la lista de documentos por // importanciareducer(p,ds) { ds1 = ordena(ds) emit (p, ds1)}

d1 d3

d3

Page 35: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

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ónInspirado en last.fm

2/3/2010 9:41 Ana C12/3/2010 9:42 Dani C22/3/2010 9:44 Ana C22/3/2010 10:01 Luis C12/3/2010 10:10 Ana C32/3/2010 10:15 Ana C22/3/2010 10:20 Dani C22/3/2010 10:21 Luis C42/3/2010 10:24 Luis C22/3/2010 10:26 Luis C42/3/2010 10:27 Ana C4

Analizador

C1 2 oyentes, 2 escuchasC2 3 oyentes, 5 escuchasC3 2 oyentes, 2 escuchasC4 2 oyentes, 3 escuchas

Page 36: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Ejercicio: canciones populares9:41 A C1

MapReduce

reducer

reducer

reducer

reducer

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

ordenaA A D L

A

Page 37: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Ejercicio: Amigos comunes

Encontrar la lista de amigos comunesInspirado en Facebook

Ana Dani Juan LuisDani Ana Juan Luis MarJuan Ana Dani Luis MarLuis Ana Dani Juan MarMar Dani Juan Luis

Si Ana visita la página de Juan, el sistema debería mostrar Dani, Luis

Dani

Juan

Luis

Mar

Ana

A D J L

D A J L M

J A D L M

L A D J M

M D J L

Page 38: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Ejercicio: Amigos comunesA D J L

D A J L M

J A D L M

reducer

reducer

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

D M D J L

J M D J Lmapper

A J A D L M

D J

J L

J M

L M D J L

A L A D J M

D L

J L

L M

A J L M

A J L M

A J L M

A D L M

A D L M

A D L M

A D J M

A D J M

A D J M

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

Page 39: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Ejercicio: Similaridad

A partir de los logs, encontrar número de canciones en común entre 2 usuariosInspirado en Amazon (libros similares),

Facebook (posibles amigos), etc.

Habitualmente se realizan varios pasos mapReduce

Page 40: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

MapReduce2

Ejemplo: Similaridad9: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

mapperC4, 2

A CC1, 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

C4 L L

A A D L

A

MapReduce1

Page 41: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

MapReduce en la práctica

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.

Page 42: Cloud Computing y MapReduce

Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra

Implementaciones MapReduce

Google (interna)

Hadoop (open source)

CloudMapReduce (basado en servicios de Amazon)

Aster Data (SQL)

Greenplum (SQL)

Disco (Python/Erlang)

Holumbus (Haskell)

Page 43: Cloud Computing y MapReduce

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)

Page 44: Cloud Computing y MapReduce

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