Cloud computinglabra

533 visualizaciones

Publicado el

Trasparencias de curso de verano de Cloud Computing
Algoritmo MapReduce

Publicado en: Internet
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
533
En SlideShare
0
De insertados
0
Número de insertados
12
Acciones
Compartido
0
Descargas
4
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Cloud computinglabra

  1. 1. Cloud Computing Jose Emilio Labra Gayo University of Oviedo, Spain http://www.di.uniovi.es/~labra
  2. 2. Esquema de la presentación Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra Motivación Cloud Computing MapReduce
  3. 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. 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. 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. 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. 7. Cloud Computing Pegatina creada por Brian Fitzpatrick para Google Code Hosting en 2006
  8. 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. 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. 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. 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. 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. 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. 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. 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. 16. MapReduce Programando en la nube Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
  17. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×