400 likes | 595 Views
procesamiento de grandes volúmenes de datos en entornos cloud computing utilizando hadoop mapreduce. UNIVERSIDAD DE ALMERÍA Ingeniero en Informática. Autor: Carlos Gómez Martínez Directores: Nicolás Padilla Soriano Julio Gómez López. Índice. Introducción. Entorno de trabajo.
E N D
procesamiento de grandes volúmenes de datos en entornos cloudcomputingutilizando hadoopmapreduce UNIVERSIDAD DE ALMERÍA Ingeniero en Informática Autor: Carlos Gómez Martínez Directores: Nicolás Padilla Soriano Julio Gómez López
Índice • Introducción. • Entorno de trabajo. • Cloud Computing, Configuración de una Nube OpenStack. • Computación Distribuida Apache Hadoop. • HadoopDistributed File System. • Integración Cloud Computing – Apache Hadoop. • Programación MapReduce. • Librería HadoopImageProcessing Interface. • Pruebas de Rendimiento y Ejemplo de Aplicación HIPI. • Conclusiones y Trabajo Futuro. 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 Desarrollo de los Sistemas de Computación Distribuidos Aparición del Paradigma de Computación Cloud Computing Nace Apache Hadoop ¿Es posible Integrarlos? 3
Índice • Introducción. • Entorno de trabajo. • Cloud Computing, Configuración de una Nube OpenStack. • Computación Distribuida Apache Hadoop. • HadoopDistributed File System. • Integración Cloud Computing – Apache Hadoop. • Programación MapReduce. • Librería HadoopImageProcessing 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 ComputingVentajas y Desventajas Abstracción e Independencia del Hardware Escalabilidad Fiabilidad Alto Rendimiento Agilidad Ahorro de Costes Recuperación ante Desastres Degradación del Servicio Alta Disponibilidad Dependencia Conexión a Internet Tecnología Prematura en Desarrollo Sentimiento de Inseguridad o Vulnerabilidad Dependencia Proveedores de Servicios 6
Cloud ComputingOpenStack • DUAL NODE Nodo Controlador Red Pública Red de Gestión Nodo(s) de Procesamiento 7
Índice • Introducción. • Entorno de trabajo. • Cloud Computing, Configuración de una Nube OpenStack. • Computación Distribuida Apache Hadoop. • HadoopDistributed File System. • Integración Cloud Computing – Apache Hadoop. • Programación MapReduce. • Librería HadoopImageProcessing Interface. • Pruebas de Rendimiento y Ejemplo de Aplicación HIPI. • Conclusiones y Trabajo Futuro. 8
Cloud ComputingComputació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. Altaflexiblidad y escalabilidad.Clústeres con distintas topologías. 9
Cloud ComputingComputación Distribuida Apache Hadoop MAESTRO ESCLAVO(S) TASKTRACKER TASKTRACKER JOBTRACKER Capa MapReduce Capa HDFS NAMENODE DATANODE DATANODE 10
Cloud ComputingHadoop Distributed File System Diseño específico para Apache Hadoop No posee Alta Disponibilidad Posibilidad de Réplica de Nodos Tolerancia a Fallos No indicado para sistemas con múltiples archivos de poco tamaño Mínimas Escrituras – Múltiples Lecturas Posibilidad de agrupar los datos en contenedores 11
Cloud ComputingHadoop 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. • Cloud Computing, Configuración de una Nube OpenStack. • Computación Distribuida Apache Hadoop. • HadoopDistributed File System. • Integración Cloud Computing – Apache Hadoop. • Programación MapReduce. • Librería HadoopImageProcessing 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 HadoopSingleNodeen ella. Configuramos HadoopMultinode Almacenamos la instancia como patrón Desplegamostantas 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. • Finalmente la capa MapReduce. • Configuramos Hadoop Multinode. • Iniciamos los servicios del entorno distribuido. 18
Índice • Introducción. • Entorno de trabajo. • Cloud Computing, Configuración de una Nube OpenStack. • Computación Distribuida Apache Hadoop. • HadoopDistributed File System. • Integración Cloud Computing – Apache Hadoop. • Programación MapReduce. • Librería HadoopImageProcessing 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 MapReduceFuncionamiento • 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. • Cloud Computing, Configuración de una Nube OpenStack. • Computación Distribuida Apache Hadoop. • HadoopDistributed File System. • Integración Cloud Computing – Apache Hadoop. • Programación MapReduce. • Librería HadoopImageProcessing Interface. • Pruebas de Rendimiento y Ejemplo de Aplicación HIPI. • Conclusiones y Trabajo Futuro. 23
Programación MapReduceLibrería HIPI Librería creada por la University of Virginia que aporta una API parael procesamiento de imágenes HipiImageBundle HipiJob CullMapper FloatImage 24
Índice • Introducción. • Entorno de trabajo. • Cloud Computing, Configuración de una Nube OpenStack. • Computación Distribuida Apache Hadoop. • HadoopDistributed File System. • Integración Cloud Computing – Apache Hadoop. • Programación MapReduce. • Librería HadoopImageProcessing 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: 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 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 Hadoopestá 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. • Cloud Computing, Configuración de una Nube OpenStack. • Computación Distribuida Apache Hadoop. • HadoopDistributed File System. • Integración Cloud Computing – Apache Hadoop. • Programación MapReduce. • Librería HadoopImageProcessing Interface. • Pruebas de Rendimiento y Ejemplo de Aplicación HIPI. • Conclusiones y Trabajo Futuro. 36
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 HadoopImageProcessing Interface proporciona una API que permite trabajar directamente sobre imágenes en Apache Hadoop 37
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 paraanalizar los datos de una red social o sistema de gestión de una organización pública o privada Integrar un Sistema de Gestión de Bases de Datos en este entorno. Optimizar el entorno de computación Apache Hadoopimplantando 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 cloudcomputingutilizando hadoopmapreduce UNIVERSIDAD DE ALMERÍA Ingeniero en Informática Autor: Carlos Gómez Martínez Directores: Nicolás Padilla Soriano Julio Gómez López