SlideShare una empresa de Scribd logo
1 de 44
Cloud Computing Jose Emilio Labra Gayo University of Oviedo, Spain http://www.di.uniovi.es/~labra
Esquema de la presentación Motivación Cloud Computing MapReduce
Motivación 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 UniverseDecade: Are youready? http://www.emc.com/collateral/demos/microsites/idc-digital-universe/iview.htm
Ejemplos de fuentes de datos É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 Internet de las cosas Cada vez más dispositivos estarán conectados a Internet Aumento de Sensores y generadores de datos Acelerador de partículas LHC producirá 15 petabytes de datos al año http://public.web.cern.ch/public/en/lhc/Computing-en.html Frigorífico con Internet http://www.youtube.com/watch?v=sfEbMV295Kk&feature=player_embedded
Grandes Centros de Datos Google, Yahoo!, Amazon, etc.  Centro de datos de Yahoo!
Cloud Computing Pegatina creada por Brian Fitzpatrick para  Google CodeHosting 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
Ventajas 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 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 SaaS PaaS IaaS
IaaS: Infraestructura Se ofrecen recursos computacionales 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 AppEngine, VMForce, AppScale
SaaS: Software Aplicación software como servicio bajo demanda El usuario no tiene que instalar/configurar aplicaciones Reduce coste de adquisición de software Ejemplos:  Aplicaciones Google (Gmail, GDocs, etc)
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?
MapReduceProgramando en la nube
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
MapReduce 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 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 Programación funcional: Modelo de programación basado en: Ausencia de efectos laterales Funciones de orden superior Funciones similares a mapy 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 Lista de entrada función Lista de salida En Haskell:  Calcular la longitud de todas las palabras de una lista > maplength [“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í 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 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)] v2 c2 MapReduce v1 c1 Entrada:  [(Clave1,Valor1)] v2 c2 Salida:  [(Clave2,Valor2)] v1 c1 v2 c2 v1 c1 v2 c2
Mapper Para cada (clave1,valor1) devuelve una lista de (clave2,valor2) Tipo: (clave1, valor1)  [(clave2,valor2)] v1 k1 mapper vi1 c1 v2 k2 v3 k1 mapper vi2 c2 v4 k3 v5 k1 v6 k1 mapper vi3 c3 v7 k3
Mezcla y ordenación de claves El sistema se encarga de mezclar y ordenar resultados intermedios en función de las claves Mezcla y ordena v1 k1 v1 v3 v5 v6 k1 v2 k2 v3 k1 v4 v2 k3 k2 v5 k1 v6 k1 v4 k3 v7 v7 k3
Reducer Para cada clave2, toma la lista de valores asociada y los combina en uno solo Tipo: (clave2,  [valor2])  (clave2,valor2) reducer v1 v3 v5 v6 vf1 k1 k1 reducer v2 vf2 k2 k2 reducer vf3 k3 v4 k3 v7
Esquema general Mezcla y ordena v1 k1 reducer vf1 k1 mapper v1 v3 v5 v6 k1 vi1 c1 v2 k2 v3 k1 reducer mapper vi1 c1 vf2 k2 v4 v2 k3 k2 v5 k1 v6 reducer vf3 k3 k1 v4 k3 v7 mapper vi1 c1 v7 k3 MapReduce
Ejemplo: Cuenta palabras Mezcla y ordena 1 a reducer 4 a mapper 1 1 1 1 a a b d1 1 b 1 a mapper reducer a c a d2 1 b 1 1 c b 1 a 1 2 c a reducer 1 c 1 mapper a c d3 1 c MapReduce // suma la lista de números de cada palabra reducer(p,ns) {   sum = 0    for each nin ns { sum += n; }    emit (p, sum) } // devuelve cada palabra con un 1 mapper(d,ps) { for eachp inps:    emit (p, 1) }
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) 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 Replicación de bloques Namenodecontiene metadatos En qué nodo está cada trozo Comunicación directa entre clientes y datanodes
Sistema de ficheros distribuido Namenode fichero1: (B1 – N1 N2, B2 – N1 N2 N3) fichero2: (B3 – N2 N3, B4 – N1 N2) fichero3: (B5 – N1 N3) Cliente1 Cliente2 B1 B1 B4 B5 B2 Datanodes B4 B5 B3 B3 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 N1 N2 N3
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 Índice inverso lugar	doc16, doc21, doc23, doc45 Manchadoc22, doc2, doc4, doc9, doc11 Quijotedoc22, doc1, doc2, doc7 . . . 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: buscadores Esquema básico de un buscador consulta Web Búsqueda P1 P1 P1 Web  crawling Indexado Índice palabra1   doc1, doc23, doc4,… palabra2   doc54,doc23 palabra3   doc1,doc7,d1oc9,doc5... palabra4    doc7,doc9,doc10 … Documentos en caché
Índice inverso Mezcla y ordena d1 a d2 a reducer d1 d3 a b mapper d1 d2 d2 d3 d1 a d1 b d2 a a c a d2 d1 b mapper reducer d2 d1 c b d2 a d2 c d3 d3 a reducer d2 c d3 a c mapper d3 d3 c MapReduce // ordena la lista de documentos por  // importancia reducer(p,ds) {   ds1 = ordena(ds)   emit (p, ds1) } // devuelve cada palabra con su  // documento mapper(d,ps) { for eachp inps:    emit (p, d) }
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 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 C1   2 oyentes, 2 escuchas C2   3 oyentes, 5 escuchas C3   2 oyentes, 2 escuchas C4   2 oyentes,  3 escuchas Analizador
Ejercicio: canciones populares Mezcla y ordena A A C1 C1 9:41 mapper D C2 D 9:42 C2 A C2 A 9:44 C2 reducer 2 2 mapper C1 L L C1 C1 10:01 A C C1 A C3 A reducer 3 10:10 5 C3 C2 C2 D  A A D  L A C2 10:15 A C2 reducer 1 C3 mapper A C3 D C2 D 10:20 C2 reducer 2  3 C4 L C4 10:21 L L L A C4 C4 L L C2 C2 10:24 mapper L C4 10:26 L C4 MapReduce A C4 10:27 A C4
Ejercicio: Amigos comunes Encontrar la lista de amigos comunes 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 Ana Dani Mar A  D J L D  A J L M J  A D L M L  A D J M M  D J L Juan Luis Si Ana visita la página de Juan, el sistema debería mostrar Dani, Luis
Ejercicio: Amigos comunes A D D J L A J D J L mapper Mezcla y ordena D J L A reducer A L D J L J L  D J L  A J L M  A D A D D L  reducer A D A J L M A J A J D J L  A D L M  D J A J L M mapper D A J L M reducer D J  A L D J L  A D J M  A L D L A J L M D M A J L M reducer A L M  D J A J L M A D L M  D J A J A D L M reducer A J M  D L A J L M A D J M  D L D J A D L M mapper J A D L M reducer J L  D M J L A D L M A J L M D J L  D M J M A D L M reducer A D M  J L A D L M A D J M  J L A L A D J M reducer D L  A D L M D J L J M J M D L A D J M mapper L A D J M J L A D J M reducer D J  A D J M  D J L  L M L M L M A D J M D J L D M MapReduce M D J L mapper D J L J M D J L L M
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
Ejemplo: Similaridad A C1 9:41 D C2 9:42 A C2 9:44 Mezcla y ordena A C C1, 1 reducer mapper C1, 1  1  A C A C L C1 A C 10:01 C1 A D C2, 2 reducer A D A D A C3 10:10 C2, 2  2  C2 D  A A D  L A L C2, 1 MapReduce1 A C2 10:15 reducer A L C4, 2 C2 1  C4 2  3 A L A L A mapper C3 D C2 10:20 L L A C4 L C4 10:21 MapReduce2 L C2 10:24 L C4 10:26 A C4 10:27
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.
Implementaciones MapReduce Google (interna) Hadoop (open source) CloudMapReduce (basado en servicios de Amazon) Aster Data (SQL) Greenplum (SQL) Disco (Python/Erlang)  Holumbus(Haskell)
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)
Agradecimientos Parte del contenido de esta presentación ha sido tomado de otras presentaciones similares de: Jimmy Lin Jeff Dean Jose Manuel Redondo

Más contenido relacionado

La actualidad más candente

Administracion de archivos
Administracion de archivosAdministracion de archivos
Administracion de archivosGabs Dempsey
 
El conocimiento en Inteligencia Artificial
El conocimiento en Inteligencia ArtificialEl conocimiento en Inteligencia Artificial
El conocimiento en Inteligencia Artificialwarrionet
 
Arquitectura de Bases de Datos Oracle
Arquitectura de Bases de Datos OracleArquitectura de Bases de Datos Oracle
Arquitectura de Bases de Datos Oraclevinivaldivieso
 
Ejercicios en prolog
Ejercicios en prologEjercicios en prolog
Ejercicios en prologJeffoG92
 
Cap. III sistema de información
Cap. III sistema de informaciónCap. III sistema de información
Cap. III sistema de informaciónKaterin0501
 
Manejo de archivos en java
Manejo de archivos en javaManejo de archivos en java
Manejo de archivos en javaWhaleejaa Wha
 
Ejemplo creacion de un etl
Ejemplo creacion de un etlEjemplo creacion de un etl
Ejemplo creacion de un etlmarilgarcia7
 
Diferencias entre sistema de informacion manual y sistema automatizado
Diferencias entre sistema de informacion manual y sistema automatizadoDiferencias entre sistema de informacion manual y sistema automatizado
Diferencias entre sistema de informacion manual y sistema automatizadogianfranco asd asd
 
SO Unidad 2: Mecanismos de comunicación y sincronización de procesos
SO Unidad 2: Mecanismos de comunicación y sincronización de procesosSO Unidad 2: Mecanismos de comunicación y sincronización de procesos
SO Unidad 2: Mecanismos de comunicación y sincronización de procesosFranklin Parrales Bravo
 
Normalizaciòn
NormalizaciònNormalizaciòn
Normalizaciònomarzon
 
Bases de datos dinamicas y estaticas
Bases de datos dinamicas y estaticasBases de datos dinamicas y estaticas
Bases de datos dinamicas y estaticasJeisonGrajales
 
Tipos de usuarios de base de datos diapositivas
Tipos de usuarios de base de datos diapositivasTipos de usuarios de base de datos diapositivas
Tipos de usuarios de base de datos diapositivasgrupo niche ortega
 
Conceptos Basicos de Bases de Datos Multiusuario
Conceptos Basicos de Bases de DatosMultiusuarioConceptos Basicos de Bases de DatosMultiusuario
Conceptos Basicos de Bases de Datos Multiusuarioheliozwt
 
Lenguajes de bases de datos
Lenguajes de bases de datosLenguajes de bases de datos
Lenguajes de bases de datosralbarracin
 

La actualidad más candente (20)

Guia normalización
Guia normalizaciónGuia normalización
Guia normalización
 
Administracion de archivos
Administracion de archivosAdministracion de archivos
Administracion de archivos
 
El conocimiento en Inteligencia Artificial
El conocimiento en Inteligencia ArtificialEl conocimiento en Inteligencia Artificial
El conocimiento en Inteligencia Artificial
 
Arquitectura de Bases de Datos Oracle
Arquitectura de Bases de Datos OracleArquitectura de Bases de Datos Oracle
Arquitectura de Bases de Datos Oracle
 
Objetivos de las bases de datos
Objetivos de las bases de datosObjetivos de las bases de datos
Objetivos de las bases de datos
 
Ejercicios en prolog
Ejercicios en prologEjercicios en prolog
Ejercicios en prolog
 
Cap. III sistema de información
Cap. III sistema de informaciónCap. III sistema de información
Cap. III sistema de información
 
Manejo de archivos en java
Manejo de archivos en javaManejo de archivos en java
Manejo de archivos en java
 
Introducción a REST - SymfonyVLC
Introducción a REST - SymfonyVLCIntroducción a REST - SymfonyVLC
Introducción a REST - SymfonyVLC
 
Ejemplo creacion de un etl
Ejemplo creacion de un etlEjemplo creacion de un etl
Ejemplo creacion de un etl
 
Diferencias entre sistema de informacion manual y sistema automatizado
Diferencias entre sistema de informacion manual y sistema automatizadoDiferencias entre sistema de informacion manual y sistema automatizado
Diferencias entre sistema de informacion manual y sistema automatizado
 
Planificacion mlq
Planificacion mlqPlanificacion mlq
Planificacion mlq
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
SO Unidad 2: Mecanismos de comunicación y sincronización de procesos
SO Unidad 2: Mecanismos de comunicación y sincronización de procesosSO Unidad 2: Mecanismos de comunicación y sincronización de procesos
SO Unidad 2: Mecanismos de comunicación y sincronización de procesos
 
Los residuos tóxicos
Los residuos tóxicos Los residuos tóxicos
Los residuos tóxicos
 
Normalizaciòn
NormalizaciònNormalizaciòn
Normalizaciòn
 
Bases de datos dinamicas y estaticas
Bases de datos dinamicas y estaticasBases de datos dinamicas y estaticas
Bases de datos dinamicas y estaticas
 
Tipos de usuarios de base de datos diapositivas
Tipos de usuarios de base de datos diapositivasTipos de usuarios de base de datos diapositivas
Tipos de usuarios de base de datos diapositivas
 
Conceptos Basicos de Bases de Datos Multiusuario
Conceptos Basicos de Bases de DatosMultiusuarioConceptos Basicos de Bases de DatosMultiusuario
Conceptos Basicos de Bases de Datos Multiusuario
 
Lenguajes de bases de datos
Lenguajes de bases de datosLenguajes de bases de datos
Lenguajes de bases de datos
 

Destacado (20)

Hadoop And Pig And MapReduce
Hadoop And Pig And MapReduceHadoop And Pig And MapReduce
Hadoop And Pig And MapReduce
 
Temadeinvestigacion 130402203353-phpapp02
Temadeinvestigacion 130402203353-phpapp02Temadeinvestigacion 130402203353-phpapp02
Temadeinvestigacion 130402203353-phpapp02
 
Aprendizaje de Maquina y Aplicaciones
Aprendizaje de Maquina y AplicacionesAprendizaje de Maquina y Aplicaciones
Aprendizaje de Maquina y Aplicaciones
 
BigTable And Hbase
BigTable And HbaseBigTable And Hbase
BigTable And Hbase
 
Bigtable
BigtableBigtable
Bigtable
 
Bigtable and Dynamo
Bigtable and DynamoBigtable and Dynamo
Bigtable and Dynamo
 
Dynamo and BigTable in light of the CAP theorem
Dynamo and BigTable in light of the CAP theoremDynamo and BigTable in light of the CAP theorem
Dynamo and BigTable in light of the CAP theorem
 
Dynamo and BigTable - Review and Comparison
Dynamo and BigTable - Review and ComparisonDynamo and BigTable - Review and Comparison
Dynamo and BigTable - Review and Comparison
 
Gfs vs hdfs
Gfs vs hdfsGfs vs hdfs
Gfs vs hdfs
 
Cloud computinglabra
Cloud computinglabraCloud computinglabra
Cloud computinglabra
 
NoSQL: la siguiente generación de Base de Datos
NoSQL: la siguiente generación de Base de DatosNoSQL: la siguiente generación de Base de Datos
NoSQL: la siguiente generación de Base de Datos
 
Map reduce (from Google)
Map reduce (from Google)Map reduce (from Google)
Map reduce (from Google)
 
Mallorca MUG: MapReduce y Aggregation Framework
Mallorca MUG: MapReduce y Aggregation FrameworkMallorca MUG: MapReduce y Aggregation Framework
Mallorca MUG: MapReduce y Aggregation Framework
 
MapReduce en Hadoop
MapReduce en HadoopMapReduce en Hadoop
MapReduce en Hadoop
 
Introducción a hadoop
Introducción a hadoopIntroducción a hadoop
Introducción a hadoop
 
HDFS
HDFSHDFS
HDFS
 
The google MapReduce
The google MapReduceThe google MapReduce
The google MapReduce
 
Introducción a Hadoop
Introducción a HadoopIntroducción a Hadoop
Introducción a Hadoop
 
Aula virtual apache_hadoop_v3 1
Aula virtual apache_hadoop_v3 1Aula virtual apache_hadoop_v3 1
Aula virtual apache_hadoop_v3 1
 
Big table
Big tableBig table
Big table
 

Similar a Cloud Computing y MapReduce

base de datos #1
base de datos #1base de datos #1
base de datos #1sergio804
 
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
 
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
 
Big data y las apis
Big data y  las apis Big data y  las apis
Big data y las apis CloudAppi
 
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
 
Actividad 6
Actividad 6Actividad 6
Actividad 6JAREK T
 
Visualización de Big Data con Power View
Visualización de Big Data con Power ViewVisualización de Big Data con Power View
Visualización de Big Data con Power ViewEduardo Castro
 
Pablo Doval | Plain Concepts | Open Data
Pablo Doval | Plain Concepts | Open DataPablo Doval | Plain Concepts | Open Data
Pablo Doval | Plain Concepts | Open DataSmash Tech
 
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientas
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientasDesarrollo práctico de aplicaciones Linked Data: metodología y herramientas
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientasGuillermo Álvaro Rey
 
Primeros pasos con Neo4j
Primeros pasos con Neo4jPrimeros pasos con Neo4j
Primeros pasos con Neo4jUbaldo Taladriz
 
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
 
Novedades en SQL Server 2019
Novedades en SQL Server 2019Novedades en SQL Server 2019
Novedades en SQL Server 2019Eduardo Castro
 

Similar a Cloud Computing y MapReduce (20)

Computación distribuida usando Python
Computación distribuida usando PythonComputación distribuida usando Python
Computación distribuida usando Python
 
base de datos #1
base de datos #1base de datos #1
base de datos #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
 
Hadoop, Cloud y Spring
Hadoop, Cloud y Spring Hadoop, Cloud y Spring
Hadoop, Cloud y Spring
 
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...
 
Big data y las apis
Big data y  las apis Big data y  las apis
Big data y las apis
 
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...
 
Actividad 6
Actividad 6Actividad 6
Actividad 6
 
3. Hadoop
3.  Hadoop3.  Hadoop
3. Hadoop
 
Visualización de Big Data con Power View
Visualización de Big Data con Power ViewVisualización de Big Data con Power View
Visualización de Big Data con Power View
 
Pablo Doval | Plain Concepts | Open Data
Pablo Doval | Plain Concepts | Open DataPablo Doval | Plain Concepts | Open Data
Pablo Doval | Plain Concepts | Open Data
 
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientas
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientasDesarrollo práctico de aplicaciones Linked Data: metodología y herramientas
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientas
 
SMBD 2011
SMBD 2011SMBD 2011
SMBD 2011
 
SMBD 2011
SMBD 2011SMBD 2011
SMBD 2011
 
Primeros pasos con Neo4j
Primeros pasos con Neo4jPrimeros pasos con Neo4j
Primeros pasos con Neo4j
 
Conferencia universidad 2010
Conferencia universidad 2010Conferencia universidad 2010
Conferencia universidad 2010
 
Presentación: manejo y almacenamiento de bases de datos
Presentación: manejo y almacenamiento de bases de datosPresentación: manejo y almacenamiento de bases de datos
Presentación: manejo y almacenamiento de bases de datos
 
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...
 
WEB 2.0 Google Colaboracion
WEB 2.0 Google ColaboracionWEB 2.0 Google Colaboracion
WEB 2.0 Google Colaboracion
 
Novedades en SQL Server 2019
Novedades en SQL Server 2019Novedades en SQL Server 2019
Novedades en SQL Server 2019
 

Más 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
 

Más 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
 

Último

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 

Último (10)

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 

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 Motivación Cloud Computing MapReduce
  • 3. Motivación 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 UniverseDecade: Are youready? http://www.emc.com/collateral/demos/microsites/idc-digital-universe/iview.htm
  • 4. Ejemplos de fuentes de datos É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 Internet de las cosas Cada vez más dispositivos estarán conectados a Internet Aumento de Sensores y generadores de datos Acelerador de partículas LHC producirá 15 petabytes de datos al año http://public.web.cern.ch/public/en/lhc/Computing-en.html Frigorífico con Internet http://www.youtube.com/watch?v=sfEbMV295Kk&feature=player_embedded
  • 6. Grandes Centros de Datos Google, Yahoo!, Amazon, etc. Centro de datos de Yahoo!
  • 7. Cloud Computing Pegatina creada por Brian Fitzpatrick para Google CodeHosting 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
  • 9. Ventajas 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 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 SaaS PaaS IaaS
  • 12. IaaS: Infraestructura Se ofrecen recursos computacionales 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 AppEngine, VMForce, AppScale
  • 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 Ejemplos: Aplicaciones Google (Gmail, GDocs, etc)
  • 15. 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?
  • 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
  • 18. MapReduce 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 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 Programación funcional: Modelo de programación basado en: Ausencia de efectos laterales Funciones de orden superior Funciones similares a mapy 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 Lista de entrada función Lista de salida En Haskell: Calcular la longitud de todas las palabras de una lista > maplength [“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í 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 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)] v2 c2 MapReduce v1 c1 Entrada: [(Clave1,Valor1)] v2 c2 Salida: [(Clave2,Valor2)] v1 c1 v2 c2 v1 c1 v2 c2
  • 24. Mapper Para cada (clave1,valor1) devuelve una lista de (clave2,valor2) Tipo: (clave1, valor1)  [(clave2,valor2)] v1 k1 mapper vi1 c1 v2 k2 v3 k1 mapper vi2 c2 v4 k3 v5 k1 v6 k1 mapper vi3 c3 v7 k3
  • 25. Mezcla y ordenación de claves El sistema se encarga de mezclar y ordenar resultados intermedios en función de las claves Mezcla y ordena v1 k1 v1 v3 v5 v6 k1 v2 k2 v3 k1 v4 v2 k3 k2 v5 k1 v6 k1 v4 k3 v7 v7 k3
  • 26. Reducer Para cada clave2, toma la lista de valores asociada y los combina en uno solo Tipo: (clave2, [valor2])  (clave2,valor2) reducer v1 v3 v5 v6 vf1 k1 k1 reducer v2 vf2 k2 k2 reducer vf3 k3 v4 k3 v7
  • 27. Esquema general Mezcla y ordena v1 k1 reducer vf1 k1 mapper v1 v3 v5 v6 k1 vi1 c1 v2 k2 v3 k1 reducer mapper vi1 c1 vf2 k2 v4 v2 k3 k2 v5 k1 v6 reducer vf3 k3 k1 v4 k3 v7 mapper vi1 c1 v7 k3 MapReduce
  • 28. Ejemplo: Cuenta palabras Mezcla y ordena 1 a reducer 4 a mapper 1 1 1 1 a a b d1 1 b 1 a mapper reducer a c a d2 1 b 1 1 c b 1 a 1 2 c a reducer 1 c 1 mapper a c d3 1 c MapReduce // suma la lista de números de cada palabra reducer(p,ns) { sum = 0 for each nin ns { sum += n; } emit (p, sum) } // devuelve cada palabra con un 1 mapper(d,ps) { for eachp inps: emit (p, 1) }
  • 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) 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 Replicación de bloques Namenodecontiene metadatos En qué nodo está cada trozo Comunicación directa entre clientes y datanodes
  • 31. Sistema de ficheros distribuido Namenode fichero1: (B1 – N1 N2, B2 – N1 N2 N3) fichero2: (B3 – N2 N3, B4 – N1 N2) fichero3: (B5 – N1 N3) Cliente1 Cliente2 B1 B1 B4 B5 B2 Datanodes B4 B5 B3 B3 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 N1 N2 N3
  • 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 Índice inverso lugar doc16, doc21, doc23, doc45 Manchadoc22, doc2, doc4, doc9, doc11 Quijotedoc22, doc1, doc2, doc7 . . . 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…
  • 33. Índice inverso: buscadores Esquema básico de un buscador consulta Web Búsqueda P1 P1 P1 Web crawling Indexado Índice palabra1 doc1, doc23, doc4,… palabra2 doc54,doc23 palabra3 doc1,doc7,d1oc9,doc5... palabra4 doc7,doc9,doc10 … Documentos en caché
  • 34. Índice inverso Mezcla y ordena d1 a d2 a reducer d1 d3 a b mapper d1 d2 d2 d3 d1 a d1 b d2 a a c a d2 d1 b mapper reducer d2 d1 c b d2 a d2 c d3 d3 a reducer d2 c d3 a c mapper d3 d3 c MapReduce // ordena la lista de documentos por // importancia reducer(p,ds) { ds1 = ordena(ds) emit (p, ds1) } // devuelve cada palabra con su // documento mapper(d,ps) { for eachp inps: emit (p, d) }
  • 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 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 C1 2 oyentes, 2 escuchas C2 3 oyentes, 5 escuchas C3 2 oyentes, 2 escuchas C4 2 oyentes, 3 escuchas Analizador
  • 36. Ejercicio: canciones populares Mezcla y ordena A A C1 C1 9:41 mapper D C2 D 9:42 C2 A C2 A 9:44 C2 reducer 2 2 mapper C1 L L C1 C1 10:01 A C C1 A C3 A reducer 3 10:10 5 C3 C2 C2 D A A D L A C2 10:15 A C2 reducer 1 C3 mapper A C3 D C2 D 10:20 C2 reducer 2 3 C4 L C4 10:21 L L L A C4 C4 L L C2 C2 10:24 mapper L C4 10:26 L C4 MapReduce A C4 10:27 A C4
  • 37. Ejercicio: Amigos comunes Encontrar la lista de amigos comunes 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 Ana Dani Mar A  D J L D  A J L M J  A D L M L  A D J M M  D J L Juan Luis Si Ana visita la página de Juan, el sistema debería mostrar Dani, Luis
  • 38. Ejercicio: Amigos comunes A D D J L A J D J L mapper Mezcla y ordena D J L A reducer A L D J L J L D J L A J L M A D A D D L reducer A D A J L M A J A J D J L A D L M D J A J L M mapper D A J L M reducer D J A L D J L A D J M A L D L A J L M D M A J L M reducer A L M D J A J L M A D L M D J A J A D L M reducer A J M D L A J L M A D J M D L D J A D L M mapper J A D L M reducer J L D M J L A D L M A J L M D J L D M J M A D L M reducer A D M J L A D L M A D J M J L A L A D J M reducer D L A D L M D J L J M J M D L A D J M mapper L A D J M J L A D J M reducer D J A D J M D J L L M L M L M A D J M D J L D M MapReduce M D J L mapper D J L J M D J L L M
  • 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
  • 40. Ejemplo: Similaridad A C1 9:41 D C2 9:42 A C2 9:44 Mezcla y ordena A C C1, 1 reducer mapper C1, 1 1 A C A C L C1 A C 10:01 C1 A D C2, 2 reducer A D A D A C3 10:10 C2, 2 2 C2 D A A D L A L C2, 1 MapReduce1 A C2 10:15 reducer A L C4, 2 C2 1 C4 2 3 A L A L A mapper C3 D C2 10:20 L L A C4 L C4 10:21 MapReduce2 L C2 10:24 L C4 10:26 A C4 10:27
  • 41. 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.
  • 42. Implementaciones MapReduce Google (interna) Hadoop (open source) CloudMapReduce (basado en servicios de Amazon) Aster Data (SQL) Greenplum (SQL) Disco (Python/Erlang) Holumbus(Haskell)
  • 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)
  • 44. Agradecimientos Parte del contenido de esta presentación ha sido tomado de otras presentaciones similares de: Jimmy Lin Jeff Dean Jose Manuel Redondo