procesamiento de grandes volúmenes de datos en entornos cloud computing utilizando hadoop mapreduce Autor: Carlos Gómez Martínez Directores: Nicolás Padilla Soriano Julio Gómez López UNIVERSIDAD DE ALMERÍA Ingeniero en Informática
Índice Introducción. Entorno de trabajo. Programación MapReduce. Cloud Computing, Configuración de una Nube OpenStack. Computación Distribuida Apache Hadoop. Hadoop Distributed File System. Integración Cloud Computing – Apache Hadoop. Programación MapReduce. Librería Hadoop Image Processing Interface. Pruebas de Rendimiento y Ejemplo de Aplicación HIPI. Conclusiones y Trabajo Futuro. Explicar todo el índice y en los puntos que tienen subapartados, explicar el apartado y destacar el subapartado. 1
Introducción Aumento de velocidad y del volumen de tráfico soportado Mejora en las comunicaciones de Red Sistema de Computación Distribuido de Alto Rendimiento en un entorno Cloud Computing Aparición del Paradigma de Computación Cloud Computing Desarrollo de los Sistemas de Computación Distribuidos Progreso general del proyecto ¿Es posible Integrarlos? Nace Apache Hadoop 3
Índice Introducción. Entorno de trabajo. Programación MapReduce. Cloud Computing, Configuración de una Nube OpenStack. Computación Distribuida Apache Hadoop. Hadoop Distributed File System. Integración Cloud Computing – Apache Hadoop. Programación MapReduce. Librería Hadoop Image Processing Interface. Pruebas de Rendimiento y Ejemplo de Aplicación HIPI. Conclusiones y Trabajo Futuro. 4
Cloud Computing Ofrecer los recursos de un sistema sin que los usuarios tengan conocimientos sobre el mismo, su configuración, mantenimiento o administración. Virtualización de Servidores. Convertir un sistema en una infraestructura de servicios escalable, dinámica y automatizable en la que se paga por los servicios que utilizas. Migrar servicios entre servidores y adaptar el sistema a la demanda de los usuarios. Tipos de nubes: privadas, públicas, híbridas, combinadas y comunitarias. 5
Cloud Computing Ventajas y Desventajas Abstracción e Independencia del Hardware Fiabilidad Escalabilidad Alto Rendimiento Agilidad Ahorro de Costes Recuperación ante Desastres Degradación del Servicio Alta Disponibilidad Dependencia Conexión a Internet Dependencia Proveedores de Servicios Tecnología Prematura en Desarrollo Sentimiento de Inseguridad o Vulnerabilidad 6
Cloud Computing Comparativa Explicar las diferencias. Nubes que aportan IaaS, PaaS o Saas
Cloud Computing OpenStack DUAL NODE Nodo Controlador Red Pública Red de Gestión Nodo(s) de Procesamiento 7
Índice Introducción. Entorno de trabajo. Programación MapReduce. Cloud Computing, Configuración de una Nube OpenStack. Computación Distribuida Apache Hadoop. Hadoop Distributed File System. Integración Cloud Computing – Apache Hadoop. Programación MapReduce. Librería Hadoop Image Processing Interface. Pruebas de Rendimiento y Ejemplo de Aplicación HIPI. Conclusiones y Trabajo Futuro. 8
Cloud Computing Computación Distribuida Apache Hadoop Entorno de computación distribuida de licencia libre creado por Doug Cutting y promovido por Apache Software Foundation. Sistemas con miles de nodos. Aplicaciones sobre grandes volúmenes de datos de manera distribuida. Alta flexiblidad y escalabilidad. Clústeres con distintas topologías. 9
Cloud Computing Computación Distribuida Apache Hadoop MAESTRO ESCLAVO(S) TASKTRACKER TASKTRACKER JOBTRACKER Capa MapReduce Capa HDFS NAMENODE DATANODE DATANODE 10
Cloud Computing Hadoop Distributed File System Diseño específico para Apache Hadoop No posee Alta Disponibilidad Posibilidad de Réplica de Nodos Tolerancia a Fallos Hay que decir aquí que obviamente mantiene las características de Hadoop de Flexibilidad, Adaptabilidad, grandes volúmenes de datos y Miles de Nodos. Mínimas Escrituras – Múltiples Lecturas No indicado para sistemas con múltiples archivos de poco tamaño Posibilidad de agrupar los datos en contenedores 11
Cloud Computing Hadoop Distributed File System Op. Sincronización Op. Datos NAME NODE NAMENODE SECUNDARIO Red de Sincronización Op. sobre Bloque DATANODE DATANODE Réplica de Datos 12
Índice Introducción. Entorno de trabajo. Programación MapReduce. Cloud Computing, Configuración de una Nube OpenStack. Computación Distribuida Apache Hadoop. Hadoop Distributed File System. Integración Cloud Computing – Apache Hadoop. Programación MapReduce. Librería Hadoop Image Processing Interface. Pruebas de Rendimiento y Ejemplo de Aplicación HIPI. Conclusiones y Trabajo Futuro. 13
Integración Cloud Computing – apache hadoop Creamos una instancia virtual en nuestra nube OpenStack Hadoop es adaptable a cualquier tipo de máquinas Incluso Virtuales Instalamos Hadoop SingleNode en ella. Configuramos Hadoop Multinode Almacenamos la instancia como patrón Desplegamos tantas instancias como nuestros recursos nos permitan 14
Integración Cloud Computing – apache hadoop Seleccionamos un tipo de instancia. Utilizamos una máquina virtual Ubuntu. 15
Integración Cloud Computing – apache hadoop Nos conectamos vía SSH a la instancia. Configuramos Hadoop SingleNode. 16
Integración Cloud Computing – apache hadoop Almacenamos esta máquina virtual configurada con Hadoop SingleNode como patrón de instancias. Desplegamos tantas instancias como los recursos hardware de nuestro sistema Cloud Computing permitan. 17
Integración Cloud Computing – apache hadoop Primero el HDFS. Configuramos Hadoop Multinode. Finalmente la capa MapReduce. Iniciamos los servicios del entorno distribuido. 18
Índice Introducción. Entorno de trabajo. Programación MapReduce. Cloud Computing, Configuración de una Nube OpenStack. Computación Distribuida Apache Hadoop. Hadoop Distributed File System. Integración Cloud Computing – Apache Hadoop. Programación MapReduce. Librería Hadoop Image Processing Interface. Pruebas de Rendimiento y Ejemplo de Aplicación HIPI. Conclusiones y Trabajo Futuro. 19
Programación MapReduce Programación Paralela Programación Funcional (Map – Reduce) Balanceado de Carga Licencia Libre Amplio Soporte Control de Errores en Nodos. Tolerancia a Fallos Orientado a Grandes Cantidades de Datos 20
Programación MapReduce Funcionamiento 21
Programación MapReduce Funcionamiento Los elementos principales de un programa MapReduce son: JobConf Mapper Reducer Formato de Entrada Formato de Salida No hay un ningún tipo de archivo para trabajar con Imágenes 22
Índice Introducción. Entorno de trabajo. Programación MapReduce. Cloud Computing, Configuración de una Nube OpenStack. Computación Distribuida Apache Hadoop. Hadoop Distributed File System. Integración Cloud Computing – Apache Hadoop. Programación MapReduce. Librería Hadoop Image Processing Interface. Pruebas de Rendimiento y Ejemplo de Aplicación HIPI. Conclusiones y Trabajo Futuro. 23
Programación MapReduce Librería HIPI Librería creada por la University of Virginia que aporta una API para el procesamiento de imágenes HipiImageBundle HipiJob FloatImage CullMapper 24
Programación MapReduce Librería HIPI 25
Índice Introducción. Entorno de trabajo. Programación MapReduce. Cloud Computing, Configuración de una Nube OpenStack. Computación Distribuida Apache Hadoop. Hadoop Distributed File System. Integración Cloud Computing – Apache Hadoop. Programación MapReduce. Librería Hadoop Image Processing Interface. Pruebas de Rendimiento y Ejemplo de Aplicación HIPI. Conclusiones y Trabajo Futuro. 26
Pruebas de Rendimiento y Ejemplos de Aplicación HIPI Prueba de Rendimiento WordCount Batería de pruebas aumentando el número de libros Carga de Archivos en el Sistema Ejecución MapReduce 27
Pruebas de Rendimiento y Ejemplos de Aplicación HIPI Resultados obtenidos: Test WordCount (Libros) Incluir Archivos en HDFS (mm:ss,d) Ejecución (mm:ss,d) 10 00:03,2 00:45,3 50 00:13,1 01:12,4 100 00:25,2 01:41,0 150 00:42,6 02:18,8 200 01:04,6 03:02,9 300 01:50,8 03:58,1 400 02:25,5 05:04,7 500 02:53,8 05:54,7 600 02:59,8 06:46,5 700 03:21,6 07:43,7 800 03:27,1 08:18,0 900 03:48,3 09:44,7 1000 04:12,4 10:29,9 28
Pruebas de Rendimiento y Ejemplos de Aplicación HIPI Cuanto mayores son los conjuntos de entrada, mejor el comportamiento Las diferencias en los grandes conjuntos son menos significativas 29
Pruebas de Rendimiento y Ejemplos de Aplicación HIPI El aumento en el tiempo de ejecución es lineal, por lo que el incremento en la biblioteca de entrada afecta de forma normal. 30
Pruebas de Rendimiento y Ejemplos de Aplicación HIPI Libros Segundos Totales Segundos por Libro 10 45” 4,5” 50 72” 1,44” 100 101” 1,01” 150 139” 0,93” 200 183” 0,91” 300 238” 0,79” 400 305” 0,76” 500 355” 0,71” 600 407” 0,68” 700 464” 0,66” 800 498” 0,62” 900 585” 0,65” 1000 630” 0,63” 31
Pruebas de Rendimiento y Ejemplos de Aplicación HIPI CONCLUSIONES PRUEBAS DE RENDIMIENTO Un clúster Hadoop junto con la programación MapReduce obtiene mejor rendimiento cuanto mayor son los conjuntos de datos de entrada. Para grandes volúmenes de datos el funcionamiento del HDFS es mucho más eficiente. El framework Apache Hadoop está diseñado para sistemas en los que los datos se carguen una vez y sobre ellos se realicen múltiples trabajos. 32
Pruebas de Rendimiento y Ejemplos de Aplicación HIPI Ejemplo de Aplicación HIPI Descarga de imágenes de la red social Flickr Ejecución sobre el contenedor Generación de contenedor HIB 33
Pruebas de Rendimiento y Ejemplos de Aplicación HIPI Ejecución Downloader 34
Pruebas de Rendimiento y Ejemplos de Aplicación HIPI Ejecución DumpHIB 35
Índice Introducción. Entorno de trabajo. Programación MapReduce. Cloud Computing, Configuración de una Nube OpenStack. Computación Distribuida Apache Hadoop. Hadoop Distributed File System. Integración Cloud Computing – Apache Hadoop. Programación MapReduce. Librería Hadoop Image Processing Interface. Pruebas de Rendimiento y Ejemplo de Aplicación HIPI. Conclusiones y Trabajo Futuro. 36
Integrar Cloud Computing y Apache Hadoop. Conclusiones Se ha cumplido el objetivo principal del proyecto Integrar Cloud Computing y Apache Hadoop. OpenStack junto con StackOps proporciona una forma de configurar sistemas Cloud Computing de manera sencilla. Apache Hadoop ha demostrado ser un sistema de computación distribuido adaptable a cualquier tipo de sistema, incluso virtuales. Queda probado que el entornos Apache Hadoop, el HDFS y la programación MapReduce alcanzan su mayor rendimiento procesando grandes conjuntos de datos La librería Hadoop Image Processing Interface proporciona una API que permite trabajar directamente sobre imágenes en Apache Hadoop 37
Integrar un Sistema de Gestión de Bases de Datos en este entorno. Trabajo Futuro Crear un programa que incluya la librería HIPI que tome imágenes (por ejemplo de satélite) y detecte figuras o patrones incluidos en ellas. Crear un clúster para analizar los datos de una red social o sistema de gestión de una organización pública o privada utilizando al máximo los recursos del clúster: se refiere a crear instancias virtuales de distintas características y utilizando el nodo controlador sólo como controlador. Integrar un Sistema de Gestión de Bases de Datos en este entorno. Optimizar el entorno de computación Apache Hadoop implantando alta disponibilidad y utilizando al máximo los recursos del clúster. 39
Gracias por su atención procesamiento de grandes volúmenes de datos en entornos cloud computing utilizando hadoop mapreduce Gracias por su atención Autor: Carlos Gómez Martínez Directores: Nicolás Padilla Soriano Julio Gómez López UNIVERSIDAD DE ALMERÍA Ingeniero en Informática