Una Arquitectura Distribuida Tolerante a Fallos para un

Download Report

Transcript Una Arquitectura Distribuida Tolerante a Fallos para un

PROCESAMIENTO DE GRANDES
VOLÚMENES DE DATOS EN ENTORNOS
CLOUD COMPUTING UTILIZANDO
HADOOP MAPREDUCE
UNIVERSIDAD DE ALMERÍA
Ingeniero 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
I NTRODUCCIÓN
Mejora en las
comunicaciones
de Red
Sistema de
Computación
Distribuido de Alto
Rendimiento en un
entorno Cloud
Computing
Aumento de
velocidad y del
volumen de
tráfico soportado
Aparición del
Paradigma de
Computación
Cloud
Computing
Desarrollo de
los Sistemas de
Computación
Distribuidos
¿Es posible
Integrarlos?
Nace
Apache
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
C LOUD C OMPUTING

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
C LOUD C OMPUTING
V ENTAJAS
Abstracción e
Independencia
del Hardware
Fiabilidad
Escalabilidad
Y
D ESVENTAJAS
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
C LOUD C OMPUTING
C OMPARATIVA
C LOUD C OMPUTING
O PEN S TACK

DUAL NODE
Red Pública
Nodo
Controlador
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
C LOUD C OMPUTING
C OMPUTACIÓN D ISTRIBUIDA A PACHE H ADOOP

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
C LOUD C OMPUTING
C OMPUTACIÓN D ISTRIBUIDA A PACHE H ADOOP
Capa
MapReduce
Capa
HDFS
MAESTRO
ESCLAVO(S)
TASKTRACKER
TASKTRACKER
JOBTRACKER
NAMENODE
DATANODE
DATANODE
10
C LOUD C OMPUTING
H ADOOP D ISTRIBUTED F ILE S YSTEM
Diseño específico
para Apache
Hadoop
No posee Alta
Disponibilidad
Posibilidad de
Réplica de Nodos
Tolerancia a Fallos
Mínimas
Escrituras –
Múltiples
Lecturas
No indicado para
sistemas
con de
Posibilidad
múltiples
archivos
de en
agrupar
los datos
poco
tamaño
contenedores
11
C LOUD C OMPUTING
H ADOOP D ISTRIBUTED F ILE S YSTEM
Op. Datos
NAME
NODE
Op.
Sincronización
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.



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
I NTEGRACIÓN C LOUD
C OMPUTING – APACHE HADOOP
Hadoop es
adaptable a
cualquier tipo de
máquinas
Incluso Virtuales
Configuramos
Hadoop
Multinode
Creamos una
instancia virtual en
nuestra nube
OpenStack
Desplegamos tantas
instancias como
nuestros recursos
nos permitan
Instalamos
Hadoop
SingleNode en
ella.
Almacenamos la
instancia como
patrón
14
I NTEGRACIÓN C LOUD
C OMPUTING – APACHE HADOOP

Seleccionamos un tipo de instancia.

Utilizamos una máquina virtual Ubuntu.
15
I NTEGRACIÓN C LOUD
C OMPUTING – APACHE HADOOP

Nos conectamos vía SSH a la instancia.

Configuramos Hadoop SingleNode.
16
I NTEGRACIÓN C LOUD
C OMPUTING – 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
I NTEGRACIÓN C LOUD
C OMPUTING – APACHE HADOOP

Configuramos
Primero
Finalmente
el HDFS.
la capa
Hadoop
MapReduce.
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
P ROGRAMACIÓN M AP R EDUCE
Programación
Funcional
(Map – Reduce)
Programación
Paralela
Balanceado
de Carga
Licencia
Libre
Control de Errores
en Nodos. Tolerancia
a Fallos
Amplio
Soporte
Orientado a Grandes
Cantidades de Datos
20
P ROGRAMACIÓN M AP R EDUCE
F UNCIONAMIENTO
21
P ROGRAMACIÓN M AP R EDUCE
F UNCIONAMIENTO

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
P ROGRAMACIÓN M AP R EDUCE
L IBRERÍ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
P ROGRAMACIÓN M AP R EDUCE
L IBRERÍ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
P RUEBAS DE R ENDIMIENTO Y
E JEMPLOS DE A PLICACIÓN HIPI
Prueba de
Rendimiento
WordCount
Carga de Archivos
en el Sistema
Batería de pruebas
aumentando el
número de libros
Ejecución
MapReduce
27
P RUEBAS DE R ENDIMIENTO Y
E JEMPLOS DE A PLICACIÓ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
P RUEBAS DE R ENDIMIENTO Y
E JEMPLOS DE A PLICACIÓN HIPI
Incluir Archivos en HDFS
Tiempo (mm:ss,d)
04:19.2
03:36.0
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
los conjuntos de
entrada, mejor el
comportamiento
Las diferencias en los
grandes conjuntos son
menos significativas
29
P RUEBAS DE R ENDIMIENTO Y
E JEMPLOS DE A PLICACIÓN HIPI
Ejecución
11:31.2
Tiempo (mm:ss,d)
10:04.8
08:38.4
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
P RUEBAS DE R ENDIMIENTO Y
E JEMPLOS DE A PLICACIÓN HIPI
10
50
100
150
200
300
400
500
600
700
800
900
Segundos
Totales
45”
72”
101”
139”
183”
238”
305”
355”
407”
464”
498”
585”
Segundos
por Libro
4,5”
1,44”
1,01”
0,93”
0,91”
0,79”
0,76”
0,71”
0,68”
0,66”
0,62”
0,65”
Segundos por Libro
Tiempo (segundos)
Libros
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
Biblioteca de Entrada
31
P RUEBAS DE R ENDIMIENTO Y
E JEMPLOS DE A PLICACIÓN HIPI
CONCLUSIONES PRUEBAS DE RENDIMIENTO
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.
32
P RUEBAS DE R ENDIMIENTO Y
E JEMPLOS DE A PLICACIÓ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
P RUEBAS DE R ENDIMIENTO Y
E JEMPLOS DE A PLICACIÓN HIPI
Ejecución Downloader
34
P RUEBAS DE R ENDIMIENTO Y
E JEMPLOS DE A PLICACIÓ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
C ONCLUSIONES
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
T RABAJO F UTURO
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
PROCESAMIENTO DE GRANDES
VOLÚMENES DE DATOS EN ENTORNOS
CLOUD COMPUTING UTILIZANDO
HADOOP MAPREDUCE
UNIVERSIDAD DE ALMERÍA
Ingeniero en Informática