autor: carlos gómez martínez directores: nicolás padilla soriano julio gómez lópez
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
Autor:Carlos Gómez Martínez
Directores:Nicolás Padilla Soriano
Julio Gómez López
PROCESAMIENTO DE GRANDES VOLÚMENES
DE DATOS EN ENTORNOS CLOUD COMPUTING
UTILIZANDO HADOOP MAPREDUCE
UNIVERSIDAD DE ALMERÍAIngeniero en Informática
ÍNDICE Introducción.
Entorno de trabajo.
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.1
INTRODUCCIÓN
Mejora en las comunicaciones
de Red
Aumento de velocidad y del
volumen de tráfico soportado
Nace Apache Hadoop
Aparición del Paradigma de Computación
Cloud Computing
¿Es posible Integrarlos?
Sistema de Computación
Distribuido de Alto Rendimiento en un
entorno Cloud Computing
Desarrollo de los Sistemas de Computación Distribuidos
3
ÍNDICE Introducción.
Entorno de trabajo.
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.
Tipos de nubes: privadas, públicas, híbridas, combinadas y comunitarias.
5
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.
CLOUD COMPUTINGVENTAJAS Y DESVENTAJAS
Ahorro de Costes
Alta Disponibilidad
Alto Rendimiento
Fiabilidad Escalabilidad
Agilidad
Recuperación ante Desastres
Abstracción e Independencia del Hardware
Sentimiento de Inseguridad o Vulnerabilidad
Dependencia Conexión a
Internet
Tecnología Prematura en
Desarrollo
Degradación del Servicio
Dependencia Proveedores de Servicios
6
CLOUD COMPUTINGCOMPARATIVA
CLOUD COMPUTINGOPENSTACK
Red Pública
DUAL NODE
Red de Gestión
Nodo(s) de Procesamiento
Nodo Controlador
7
ÍNDICE Introducción.
Entorno de trabajo.
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 COMPUTINGCOMPUTACIÓN DISTRIBUIDA APACHE
HADOOP
Entorno de computación distribuida de licencia libre creado por Doug Cutting y promovido por Apache Software Foundation.
Aplicaciones sobre grandes volúmenes de
datos de manera
distribuida.
Sistemas con miles de nodos.
Alta flexiblidad y escalabilidad. Clústeres con
distintas topologías.
9
CLOUD COMPUTINGCOMPUTACIÓN DISTRIBUIDA APACHE
HADOOP
MAESTRO ESCLAVO(S)
TASKTRACKER
JOBTRACKER
DATANODE
NAMENODE
DATANODE
TASKTRACKER
CapaMapReduce
CapaHDFS
10
CLOUD COMPUTINGHADOOP DISTRIBUTED FILE SYSTEM
Diseño específico para Apache
Hadoop
Mínimas Escrituras – Múltiples Lecturas
No posee Alta DisponibilidadPosibilidad de
Réplica de Nodos
No indicado para sistemas con
múltiples archivos de poco tamaño
Posibilidad de agrupar los datos en
contenedores
Tolerancia a Fallos
11
CLOUD COMPUTINGHADOOP DISTRIBUTED FILE SYSTEM
NAME NODE
NAMENODESECUNDARIO
DATANODE DATANODE
Réplica de Datos
Op. Sincronización
Op. sobreBloque
Red de Sincronización
Op. Datos
12
ÍNDICE Introducción.
Entorno de trabajo.
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
Hadoop es adaptable a
cualquier tipo de máquinas
Incluso Virtuales
Creamos una instancia virtual en
nuestra nube OpenStack Instalamos
Hadoop SingleNode en
ella.
Almacenamos la instancia como
patrónDesplegamos tantas
instancias como nuestros recursos
nos permitan
Configuramos Hadoop
Multinode
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 Configuramos Hadoop Multinode.
Iniciamos los servicios del entorno distribuido.
Primero el HDFS. Finalmente la capa MapReduce.
18
ÍNDICE Introducción.
Entorno de trabajo.
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 Funcional
(Map – Reduce)
Balanceado de Carga
Orientado a Grandes Cantidades de Datos
Amplio Soporte
Control de Errores en Nodos. Tolerancia
a Fallos
Licencia Libre
Programación Paralela
20
PROGRAMACIÓN MAPREDUCEFUNCIONAMIENTO
21
PROGRAMACIÓN MAPREDUCEFUNCIONAMIENTO
Los elementos principales de un programa MapReduce son:
JobConf Mapper Reducer
Formato de SalidaFormato de EntradaNo 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.
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 MAPREDUCELIBRERÍA HIPI
Librería creada por la University of Virginia que aporta una API para el procesamiento de imágenes
HipiImageBundle
FloatImage CullMapper
HipiJob
24
PROGRAMACIÓN MAPREDUCELIBRERÍA HIPI
25
ÍNDICE Introducción.
Entorno de trabajo.
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
27
Carga de Archivos en el Sistema
Ejecución MapReduce
PRUEBAS DE RENDIMIENTO Y
EJEMPLOS DE APLICACIÓN HIPI
Resultados obtenidos:
28
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
PRUEBAS DE RENDIMIENTO Y
EJEMPLOS DE APLICACIÓN HIPI
10 50 100 150 200 300 400 500 600 700 800 900 100000:00.0
00:43.2
01:26.4
02:09.6
02:52.8
03:36.0
04:19.2
Incluir Archivos en HDFS
Biblioteca de Entrada
Tiem
po (
mm
:ss,
d)
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
10 50 100 150 200 300 400 500 600 700 800 900 100000:00.0
01:26.4
02:52.8
04:19.2
05:45.6
07:12.0
08:38.4
10:04.8
11:31.2
Ejecución
Biblioteca de Entrada
Tiem
po (m
m:s
s,d)
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”
10 50 100 150 200 300 400 500 600 700 800 900 10000
0.51
1.52
2.53
3.54
4.5
Segundos por Libro
Biblioteca de Entrada
Tiem
po (s
egun
dos)
31
PRUEBAS DE RENDIMIENTO Y
EJEMPLOS DE APLICACIÓN HIPI
Para grandes volúmenes de datos el funcionamiento del
HDFS es mucho más eficiente.
Un clúster Hadoop junto con la programación MapReduce obtiene mejor rendimiento
cuanto mayor son los conjuntos de datos de
entrada.
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.
CONCLUSIONES PRUEBAS DE RENDIMIENTO
32
PRUEBAS DE RENDIMIENTO Y
EJEMPLOS DE APLICACIÓN HIPI
Ejemplo de Aplicación HIPI
Generación de contenedor HIB
Ejecución sobre el contenedor
Descarga de imágenes de la red
social Flickr
33
PRUEBAS DE RENDIMIENTO Y
EJEMPLOS DE APLICACIÓN HIPIEjecución Downloader
34
PRUEBAS DE RENDIMIENTO Y
EJEMPLOS DE APLICACIÓN HIPIEjecución DumpHIB
35
ÍNDICE Introducción.
Entorno de trabajo.
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
CONCLUSIONES
37
Se ha cumplido el objetivo principal del proyectoIntegrar 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
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
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
Autor:Carlos Gómez Martínez
Directores:Nicolás Padilla Soriano
Julio Gómez López
PROCESAMIENTO DE GRANDES VOLÚMENES
DE DATOS EN ENTORNOS CLOUD COMPUTING
UTILIZANDO HADOOP MAPREDUCE
UNIVERSIDAD DE ALMERÍAIngeniero en Informática
GRACIAS POR SU ATENCIÓN