Está en la página 1de 40

PROCESAMIENTO DE GRANDES

VOLÚMENES DE DATOS EN
ENTORNOS CLOUD
COMPUTING UTILIZANDO
HADOOP MAPREDUCE

Autor:
Carlos Gómez Martínez

Directores:
UNIVERSIDAD DE ALMERÍA
Nicolás Padilla Soriano
Ingeniero en Informática
Julio Gómez López
Í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

Aumento de
Mejora en las
velocidad y del
comunicaciones
volumen de
de Red
tráfico soportado

Sistema de
Aparición del Desarrollo de
Computación
Paradigma de los Sistemas de
Distribuido de Alto
Computación Computación
Rendimiento en un
Cloud Distribuidos
entorno Cloud
Computing
Computing

Nace
¿Es posible
Apache
Integrarlos?
Hadoop
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.
 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 Fiabilidad Escalabilidad Alto


Independencia Rendimiento
del Hardware
Agilidad
Ahorro de
Costes

Recuperación
ante Desastres Degradación
del Servicio
Alta
Disponibilidad
Dependencia
Conexión a
Internet

Dependencia Tecnología Sentimiento de


Proveedores Prematura en Inseguridad o
de Servicios Desarrollo Vulnerabilidad
6
CLOUD COMPUTING
COMPARATIVA
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.
 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
C O MP UTA CI Ó N D I S TRI B UI D A A PA C HE HA D O O P

 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 Alta flexiblidad y
manera escalabilidad.
distribuida. Clústeres con
distintas
topologías.

9
CLOUD COMPUTING
C O MP UTA CI Ó N D I S TRI B UI D A A PA C HE HA D O O P

MAESTRO ESCLAVO(S)

TASKTRACKER TASKTRACKER

Capa JOBTRACKER
MapReduce

Capa
HDFS NAMENODE

DATANODE DATANODE
10
CLOUD COMPUTING
HADOOP DISTRIBUTED FILE SYSTEM

Diseño específico
para Apache No posee Alta
Hadoop Disponibilidad
Posibilidad de
Réplica de Nodos

Tolerancia a Fallos

No indicado para
Mínimas sistemas con de
Posibilidad
Escrituras – múltiples
agrupar archivos de en
los datos
Múltiples poco tamaño
contenedores
Lecturas
11
CLOUD COMPUTING
HADOOP DISTRIBUTED FILE SYSTEM

Op.
Op. Datos Sincronización
NAME NAMENODE
NODE 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.


 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
Hadoop es
OpenStack Instalamos
adaptable a
Hadoop
cualquier tipo de
SingleNode en
máquinas
ella.
Incluso Virtuales

Configuramos Almacenamos la
Hadoop instancia como
Multinode 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
 Finalmente
Primero el HDFS.
Configuramosla capa MapReduce.
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.


 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
Programación Paralela Balanceado
Funcional
de Carga
(Map – Reduce)

Licencia Amplio
Libre Soporte

Control de Errores
Orientado a Grandes
en Nodos. Tolerancia
Cantidades de Datos
a Fallos
20
PROGRAMACIÓN MAPREDUCE
FUNCIONAMIENTO

21
PROGRAMACIÓN MAPREDUCE
FUNCIONAMIENTO

 Los elementos principales de un programa MapReduce


son:

JobConf Mapper Reducer

Formato de
Formato de Salida
Entrada
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.


 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.
 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 Batería de pruebas


Rendimiento aumentando el
WordCount número de libros

Carga de Archivos Ejecución


en el Sistema 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
Incluir Archivos en HDFS
04:19.2

03:36.0
Tiempo (mm:ss,d)
02:52.8

02:09.6

01:26.4

00:43.2

00:00.0
10 50 100 150 200 300 400 500 600 700 800 900 1000
Biblioteca de Entrada

Cuanto mayores son


Las diferencias en los
los conjuntos de
grandes conjuntos son
entrada, mejor el
menos significativas
comportamiento
29
PRUEBAS DE RENDIMIENTO
Y EJEMPLOS DE
APLICACIÓN HIPI
Ejecución
11:31.2
10:04.8
08:38.4
Tiempo (mm:ss,d)

07:12.0
05:45.6
04:19.2
02:52.8
01:26.4
00:00.0
10 50 100 150 200 300 400 500 600 700 800 900 1000
Biblioteca de Entrada

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 Segundos


Totales por Libro
10 45” 4,5” Segundos por Libro
50 72” 1,44”
4.5
100 101” 1,01” 4
150 139” 0,93” 3.5

Tiempo (segundos)
3
200 183” 0,91” 2.5
300 238” 0,79” 2
400 305” 0,76” 1.5
1
500 355” 0,71” 0.5
600 407” 0,68” 0
10 50 100 150 200 300 400 500 600 700 800 900 1000
700 464” 0,66”
Biblioteca de Entrada
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
Para grandes volúmenes de obtiene mejor rendimiento
datos el funcionamiento del cuanto mayor son los
HDFS es mucho más eficiente. 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.
32
PRUEBAS DE RENDIMIENTO
Y EJEMPLOS DE
APLICACIÓN HIPI

Descarga de
Ejemplo de
imágenes de la red
Aplicación HIPI
social Flickr

Ejecución sobre el Generación de


contenedor 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.


 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

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
TRABAJO FUTURO

Crear un programa que


Crear un clúster para
incluya la librería HIPI que
analizar los datos de una red
tome imágenes (por
social o sistema de gestión
ejemplo de satélite) y
de una organización pública
detecte figuras o patrones
o privada
incluidos en ellas.

Optimizar el entorno de
computación Apache
Integrar un Sistema de
Hadoop implantando alta
Gestión de Bases de Datos
disponibilidad y utilizando
en este entorno.
al máximo los recursos del
clúster.

39
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:
UNIVERSIDAD DE ALMERÍA
Ingeniero en Informática
Nicolás Padilla Soriano
Julio Gómez López

También podría gustarte