Big Data - Ciencias Computacionales

Anuncio
Big Data y
Supercómputo
Dr. Jesús Antonio González ([email protected])
Instituto Nacional de Astrofísica, Óptica y Electrónica (INAOE)
Big Data
2
 ¿Hasta qué cantidad de datos
podemos procesar en nuestra
computadora?
 ¿Qué tanto podemos
incrementar el poder de nuestra
computadora?
Introducción
 ¿Con qué tipo de datos estamos
trabajando?
 BD Relacional
 Datos estructurados
 Facebook
 Twitter
 Sensores RFID
 AMBOS
3
 1 TB
Cantidad de
Datos
 10 TB
 100 TB
 Más…
4
 Hadoop
 Open source project
 Apache Foundation
 Escrito en Java por Doug Cutting
 (Le dio el nombre por el elefante de juguete de su hijo)
 Utiliza tecnología de Google
Hadoop
 MapReduce
 File System
 Para manejar grandes cantidades de datos con paralelismo
 Diferentes tipos de datos
 Estructurados
 No-Estructurados
 Semi-Estructurados
 Usando hardware no-costoso de manera conveniente
5
 Hadoop
 Gran eficiencia
 Trabaja por lotes “batch” para manejar las grandes cantidades de datos
 Replica los datos en varias computadoras
 Confiable, si una se cae, los datos se toman de alguna réplica
 No está diseñado para
Hadoop
 OLTP
 OLAP
 Decision Support Systems (DSS)
 Sí está diseñado para
 Big Data
 Complementa OLTP y OLAP
 No reemplaza una BD relacional
6
 Explosión en cantidad de datos recolectados
 Big Data
¿Qué es Big
Data?
 Describe colecciones de datos grandes (Large Datasets)
 Pueden ser no-estructurados
 Crecen tan grandes y rápido que se dificulta manejarlos en una BD
normal o con herramientas estadísticas
7
 Estadísticas interesantes – Ejemplos de Big Data
¿Qué es Big
Data?
 2 mil 800 millones de usuarios en internet (nivel mundial), más el día
de hoy
 4 mil 600 millones de teléfonos móviles en 2011
 7TB de datos se procesan por Twitter cada día
 10 TB de datos se procesan por Facebook cada día
 Aprox. 80% de estos datos son no-estructurados
8
 Con estas Grandes Cantidades de Datos los negocios requieren
¿Qué es Big
Data?
 Velocidad
 Confiabilidad
 Análisis más profundo de los datos
 Soluciones para Big Data
 Cada vez más relevantes
 i.e. Hadoop
9
 Proyectos relacionados con Hadoop




Hadoop





Eclipse (IDE donada por IBM)
Lucene (librería de motor de búsqueda de texto, en Java)
H-BASE (La base de datos de hadoop)
Hive (Herramientas de data warehousing para extraer, transformar,
cargar datos y hacer queries a estos datos almacenados en archivos
de Hadoop)
Pig (Plataforma para analizar grandes conjuntos de datos, lenguaje
de alto nivel para análisis de datos)
jaql o jackal (Query language para JavaScript open notation)
Zoo Keeper (configuración de servicios y registro de nombres
centralizada para sistemas distribuidos grandes)
Avro (Sistema de serialización de datos)
UIMA (Arquitectura para desarrollo, descubrimiento, composición e
implementación para el análisis de datos no-estructurados)
10
 IBM Watson, supercomputadora de IBM que compitió en “Jeopardy”
 Ganó a 2 de los jugadores más populares
 Procesó aprox. 200 millones de texto usando hadoop
 Sistema distribuído
 Búsqueda avanzada
 Análisis
Ejemplos de
Hadoop
11
 Industria de telecomunicaciones
 China Mobile
 Cluster con hadoop para
Ejemplos de
Hadoop




Minería de Datos en registros de datos de llamadas (Call Data)
5 – 8 TB de información se producían al día
Pudieron procesar 10 veces más datos que con el sistema anterior
A 1/5 del costo anterior
12
 Industria de Medios
Ejemplos de
Hadoop
 New York Times
 Querían poner en su sitio web todos los artículos de dominio público
de 1851 a 1922
 Convirtieron los artículos 11 millones de archivos de imágenes a 1.5
TB de documentos PDF
 Implementado por 1 empleado
 Corrió un trabajo x 24 horas en un cluster Hadoop en Amazon EC2 de
100-instancias
 Bajo costo
13
 Industria de Tecnología
 IBM
 IBM ES2
Ejemplos de
Hadoop
 Tecnología de búsqueda basada en Hadoop, Lucene y Jaql
 Retos empresariales como
 Vocabulario, abreviaciones, acrónimos
 Puede hacer tareas de minería de datos para
 Crear librerías de acrónimos
 Patrones de expresiones regulares
 Reglas para geo-clasificación
14
Ejemplos de
Hadoop
 Industria de la Tecnología
 Compañías en Internet o Redes Sociales como Yahoo, Facebook,
Amazon, eBay, Twitter, StumbleUpon, Rackspace, Ning, AOL y
más…
15
Ejemplos de
Hadoop
 Yahoo es uno de usuarios más productivos
 Aplicación corre en un cluster
 10,000 máquinas con Linux
 Es quien más contribuye al proyecto Hadoop
16
Ejemplos de
Hadoop
 http://hadoopilluminated.com/hadoop_illuminated/Hadoop_Use_
Cases.html#d235e1334
17
Hadoop no
Resuelve todos
los Problemas
 Hadoop no es bueno para:





Procesar transacciones (acceso aleatorio)
Cuando el trabajo no se puede paralelizar
Para tiempos de respuesta bajos (low latency)
Para procesar grandes cantidades de archivos pequeños
Para cálculos intensivos con pocos datos
18
 Soluciones para Big Data
Soluciones
para Big Data
 Son más que solo Hadoop
 Se añade funcionalidad de inteligencia de negocios (BI) y análisis de
datos
 Para crear información valiosa
 Puede combinar datos estructurados (los ya existentes en las
corporaciones) con datos no estructurados
 Pueden derivar información a partir de datos en movimiento
 Streams de InfoSphere de IBM
 Determinar sentimientos de clientes hacia un nuevo producto
 Basado en comentarios de Facebook o Twitter
19
 La nube se ha hecho muy popular
Big Data y la
Nube
 Combina muy bien con soluciones de Big Data
 En la nube podemos configurar un cluster de hadoop en minutos,
bajo demanda y se puede utilizar tanto como se necesite sin pagar
más de lo que se usa
20
 Términos
 HDFS
Architectura
de Hadoop
 MapReduce
 Tipos de nodos
 Topología
 Escritura de un archivo a HDFS
21
 Nodo
 Es una computadora
 Rack
Architectura
de Hadoop




Colección de nodos
30 a 40, almacenados cerca el uno del otro
Todos conectados al mismo switch de la red
Ancho de banda entre dos nodos en el mismo Rack es mayor al
ancho de banda entre dos nodos en distintos Racks
 Cluster
 Colección de Racks
22
Hadoop
23
 Hadoop Cluster
Architectura
de Hadoop
24
 Dos componentes principales
Architectura
de Hadoop
 DFS (Distributed File System)
 Varias opciones
 El principal es HDFS
 Motor MapReduce
 Para hacer cálculos sobre los datos en el DFS
25
 Se ejecuta sobre el sistema de archivos existente
 En cada nodo del cluster de Hadoop
 Diseñado para un patrón de acceso muy particular
Hadoop
Distributed
File System
(HDFS)
 Archivos muy grandes
 Flujo de datos
 Trabaja mejor con archivos grandes
 A mayor tamaño, menor tiempo de búsqueda por otro segmento de
archivo
 Trabaja al límite del ancho de banda de acceso a disco
 Minimizar “seeks” usando archivos grandes
 Hadoop hace un “seek” para el principio de un bloque y continúa
leyendo secuencialmente a partir de ahí
 Utiliza bloques “blocks” para almacenar un archivo o partes de un
archivo
26
Hadoop
Distributed
File System
(HDFS)
27
Hadoop
Distributed
File System
(HDFS)
 Bloques
 Son grandes
 64MB (default), 128MB (recomendado)
 Comparado con UNIX (4KB)
 Robusto
 1 bloque HDFS es soportado por múltiples sistemas operativos “(OS)
blocks”
28
 Ventajas
Hadoop
Distributed
File System
(HDFS)
 Tamaño fijo (fácil calcular como se almacenan en disco)
 Un archivo podría ser más grande que cualquier disco en la red
 Podría almacenarse por bloques en más de un nodo
 Un bloque podría ser de menor tamaño para ahorrar espacio
 Se facilita implementar la replicación para proveer
 Tolerancia a fallas
 Disponibilidad
29
 Un bloque se puede replicar en múltiples nodos
 Aun con fallas de nodos, no se pierden datos
 La replicación se puede configurar con más de dos nodos
Hadoop
Replication
30
 HDFS es tecnología de Google
Motor
MapReduce
 MapReduce también inspirado en un artículo publicado por
Google
 Consiste en dos transformaciones a los datos que se pueden aplicar
muchas veces
 Las funciones Map y Reduce
 Un trabajo MapReduce se divide en tareas “Map” que se ejecutan en
paralelo (independientes una de otra) y tareas “Reduce”
31
Tipos de
Nodos
32
 Nodos HDFS
 NameNode
 DataNode
 Nodos MapReduce
Tipos de nodos
 JobTracker
 TaskTracker
 Otros nodos secundarios
 Secondary NameNode
 CheckPointNode
 BackUpNode
33
Tipos de nodos
34
Tipos de Nodos
Name Node
35
 Solo hay un NameNode por un cluster Hadoop
 Maneja el “namespace” del sistema de archivos y los metadatos
 Punto de fallas
Tipos de nodos
NameNode
 Se mitiga al guardar el estado en múltiples sistemas de archivo
 El local y otro en un punto montado con NFS
 Se recomienda utilizar un nodo especializado para esta función
 El nodo con mejor configuración debería ser el “NameNode”
 Memoria
36
Tipos de Nodos
Data Node
37
 Muchos por cada cluster Hadoop
Tipos de nodos
DataNode
 Maneja los bloques con datos y funciona como servicio para
clientes
 Reporta periódicamente al “NameNode” la lista de bloques que
almacena
 Se puede utilizar HW no especializado (no caro)
 La replicación de datos se hace a nivel de SW
38
Tipos de Nodos
JobTracker
39
 Uno por cluster Hadoop
Tipos de Nodos
JobTracker
 Recibe peticiones de trabajos enviadas por los clientes
 Agenda y monitorea trabajos MapReduce con los “TaskTrackers”
 Monitorea fallas en las tareas que requieran ser re-agendadas en
otro “TaskTracker”
40
Tipos de Nodos
TaskTracker
41
 Muchos por cada cluster Hadoop
Tipos de Nodos
TaskTracker
 Para lograr el paralelismo en tareas MapReduce
 Ejecuta operaciones MapReduce
 Lanza máquinas virtuales de Java para ejecutar una tarea “Map” o
“Reduce”
42
 Hadoop conoce la topología de la red
 Permite optimizar la asignación de trabajos a aplicar a los datos
 Asignar el trabajo lo más cerca de los datos para maximizar el ancho
de banda para leer los datos
Topology
Awareness
43
 1ª opción
 Asignar el TaskTracker a recibir la tarea Map que lee los datos en el
mismo nodo
Topology
Awareness
 2ª opción
 Asignar a un nodo en el mismo Rack que los datos
 Peor opción
 Asignar a un nodo en un rack distinto a donde pertenecen los datos
 Se recomienda configurar “Rack-Awareness”
 Tratar de ejecutar la tarea en el nodo “TaskTracker” con mayor
ancho de banda de acceso a los datos
44
 1. Crea petición a NameNode
 Verifica si existe el archivo
 Permite crear el archivo
 2. NameNode determina el nodo en que
almacenará el primer bloque B1.
Escritura de un
Archivo a
HDFS
 Si el cliente corre un DataNode, lo ubicará
ahí, si no elige uno aleatoriamente
 3. Por default, los datos se replican en 2
nodos en el cluster
 Envío de “acknowlegements” de las réplicas
y del DataNode al cliente
 Repite por cada bloque
 Por cada bloque, replica en al menos 2 racks
 Cliente avisa a DataNode que terminó al
recibir acknowledgements
45
 Descomponer operaciones en map y reduce
MapReduce
 Provienen de lenguajes de programación funcional
 Permiten pasar funciones como argumentos a otras funciones
 Ejemplo:
 for loop para duplicar cada elemento de un arreglo
46
MapReduce
47
MapReduce
48
MapReduce
Ejemplo
49
MapReduce
Outer Join
50
Supercómputo
51
Supercómputo
HPC
52
Poder de
Cómputo
53
¡Cómo
Medimos el
Poder de
Cómputo?
54
Arquitectura en
Supercómputo
55
Software para
Multicore
56
Software para
HPC
57
Big Data y
Supercómputo
¿Compatibles?
58
Big Data y
Supercómputo
¿Compatibles?
59
Hadoop para
Datos
Científicos
60
Ciencia de
Datos
61
Herramientas
para Hadoop y
Ciencia de
Datos
62
Ecosistema
Hadoop
63
 Big Data y Super-cómputo tienen mucho en común
 En mi opinión se complementan
 Big Data ya se aplica a algunas aplicaciones científicas
Conclusiones




Bioinformática y biología computacional
Procesamiento de imágenes astronómicas
Procesamiento de lenguaje natural
Procesamiento de datos geoespaciales
 Big Data y Cómputo Científico
 ¿Falta Software?
 ¿Falta enfocar los problemas al esquema de análisis de Big Data?
 Tenemos mucho por hacer en investigación y desarrollo
64
Descargar