Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Historia, Evolución
y Casos de Uso de Big Data
Sergio Muzzupappa
Profesor: Ana Darcacha
Fecha Presentación: 18/06/2014
II. JUSTIFICACIÓN Los sets de datos de Big Data son difíciles de trabajar con
el uso de sistemas de gestión de base de datos relacionales y
Hoy en día Big Data es un tema en boga del mundo estadísticas de escritorio y paquetes de visualización, lo que
informático ya que su infraestructura provee una forma de requiere en su lugar un software masivamente paralelo que se
procesar grandes cantidades de datos en conjuntos enormes ejecuta en decenas, cientos o incluso miles de servidores, de
de servidores con hardware barato, utilizar todos los recursos tal modo de procesar eficientemente los datos en un tiempo
de hardware eficientemente y poder rápidamente obtener razonable.
respuestas a interrogantes antes imposibles. Aunque los casos
de uso no son todos, es importante delimitar cuál es el Big Data hoy en día no se compone únicamente del
alcance de ésta tecnología y prever su evolución. El objetivo framework de Hadoop, sino que también se considera otras
del presente trabajo es delimitar el alcance de la tecnología arquitecturas NoSQL como MongoDB, HBase o Cassandra,
de Big Data, proveyendo información sobre el trabajo con la los cuales pueden ser integrados a Hadoop, por otro lado la
misma en casos del mundo real, y brindar una perspectiva gran mayoría de éstos forman parte de su ecosistema, por lo
sobre su evolución y su lugar en el mundo de las Bases de que en el presente trabajo nos centraremos en éste.
Datos.
2
Los mismos dependen en primer lugar la creación de un III. Procesamiento analítico en línea u OLAP (1990-2000):
modelo de datos - un modelo de los tipos de datos de Software para analizar tablas multidimensionales de datos.
negocios que se grabarán y cómo van a ser almacenados,
procesados y accedidos. Esto incluye definir qué campos de IV. Inteligencia de Negocio o BI (1989-2005): Herramientas
datos se almacenan y cómo se almacenarán los datos: tipo de para soportar decisiones guiadas por los datos, con énfasis en
datos y las restricciones a la entrada de datos. los reportes.
Los datos no estructurados por lo general se refieren a la V. Analítica (2005-2010): Foco en análisis estadístico y
información que no reside en una base de datos de fila- matemático para la toma de decisiones.
columna tradicional.
VI. Big Data (2010-presente): Foco en grandes cantidades de
datos no estructurados que cambian rápidamente.
Los archivos de datos no estructurados a menudo incluyen
texto y contenido multimedia. Los ejemplos incluyen
mensajes de correo electrónico, documentos de G. Diferencias de Tratamiento de Datos
procesamiento de textos, vídeos, fotos, archivos de audio,
presentaciones, páginas Web y muchos otros tipos de Las tradicionales RDBMS son usadas tanto para los
documentos de negocios. Si bien este tipo de archivos pueden sistemas transaccionales, informes y archivado. Algunas de
tener una estructura interna, que todavía se consideran "no las cuales son SQL Server, MySQL y Oracle. Éstas leen y
estructurado", porque los datos que contienen no encaja en escriben conjuntos de datos "razonables" por lo general
una base de datos [5]. menores a 1 Terabyte. Aunque no son buenas para volúmenes
masivos de datos, datos no estructurados y semi-
E. Orígenes del Big Data estructurados. Por otro lado, es complicado escalar la
infraestructura.
Los hombres hemos venido generando datos desde hace
NoSql está diseñado para un rápido acceso a las
miles de años, los últimos tiempos la progresión de
combinaciones de pares "clave-valor". Es útil para productos
crecimiento en cantidad de datos ha aumentado
como Facebook / Twitter donde más información gira en
considerablemente. Al principio se usaban datos
torno a una pieza "clave" de los datos. Algunos ejemplos son
estandarizados y estructurados, con cantidades de datos desde
las bases de datos MongoDB y Cassandra. Éste tipo es bueno
gigabytes hasta algunos terabytes.
para almacenamiento de la información de un tipo
determinado, gran velocidad de recuperación basado claves y
Hoy en día, con el avance de las tecnologías, en las
3
buen rendimiento de escritura, aunque no se utiliza para Hadoop se crea como un proyecto Open Source de alto
agrupar información a través de valores clave (por ejemplo, nivel de la fundación Apache, siendo construido y usado por
para la presentación de informes). El mismo permite mejor una comunidad global de contribuidores, mediante el
productividad al crear aplicaciones basadas en datos, ya que lenguaje de programación Java. Yahoo! ha sido el mayor
el trabajo de diseño al inicio es menor[7]. contribuyente al proyecto, usándolo extensivamente en su
negocio.[8]
Hadoop viene de un enfoque de código abierto para
almacenamiento de datos en un sistema de archivos a través
J. Google Mapreduce
de una gama de productos relativamente baratos de hardware,
y su procesamiento, utilizando un paralelismo eficiente de
servidores y su hardware. Algunas implementaciones son de Mapreduce es un framework para escribir fácilmente
las empresas Cloudera, Intel, Amazon y Hortonworks. Provee aplicaciones que procesan grandes cantidades de datos
un almacenamiento barato de gran cantidad de datos, (varios terabytes) en paralelo, en grupos grandes (miles de
estructurados y semi-estructurados. No es un reemplazo para nodos) de hardware de consumo de una manera fiable, en alta
las RDBMS tradicionales sino un complemento, no funciona disponibilidad.
bien con procesamiento de muchos archivos pequeños. Posee
un fuerte sesgo a la comunidad de código abierto y Java. El cálculo toma un conjunto de pares clave / valor de
entrada, y produce un conjunto de pares clave / valor de
salida. El usuario de la biblioteca de MapReduce expresa la
H. Iniciativa de Google computación como dos funciones: Mapear y Reducir. Según
Jeffrey Dean, en su trabajo sobre Mapreduce para Google,
En el año 2003 Google presenta un escrito en el cual muchas tareas del mundo real pueden ser expresadas en ese
describe una forma pragmática, escalable y distribuida un modelo.
sistema de archivos optimizado para guardar enormes sets de
datos llamado Google Filesystem, el cual estaba hecho para El Mapeo, escrito por el usuario, toma un par de entradas
soportar aplicaciones de procesamiento distribuido intensivo y produce un conjunto de pares clave / valor intermedios. La
de datos a larga escala. biblioteca MapReduce junta todos los valores intermedios
En Diciembre de 2004 muestran otro texto definiendo asociados con la misma clave intermedia I y se los pasa a la
Mapreduce, un modelo de programación y acompañándolo función Reducir. Esta última, también escrita por el usuario,
de un framework que provee paralelización automática, acepta una clave intermedia I y un conjunto de valores para
tolerancia a fallas, y la escala para procesar cientos de esa clave. Se fusiona estos valores para formar un conjunto
terabytes de datos en un único trabajo sobre miles de posiblemente más pequeño de los valores. Normalmente solo
máquinas. ninguno o un valor de salida se produce por invocación de la
función Reducir. Los valores intermedios se suministran a la
Al unirlos, estos dos sistemas podrían ser usados para función de usuario Reducir a través de un iterador. Esto
crear clusters de procesamiento de grandes cantidades de permite manejar las listas de valores que son demasiado
datos en servidores relativamente baratos y de consumo grandes para caber en la memoria.
masivo.
Como ejemplo se podría citar dos conjuntos de datos, la
información del usuario (id, correo electrónico, idioma,
I. Doug Cutting, Nutch y Hadoop
ubicación), y la información de la transacción (transaction-id,
product-id, id-usuario, la compra-cantidad, descripción).
Ni bien fue publicado el papel sobre el algoritmo Teniendo en cuenta estos datos, se quisiera encontrar el
Mapreduce, un impulsor de las tecnologías Open Source, número de lugares únicos en los que cada producto ha sido
llamado Douglass Read Cutting, se encontraba trabajando en vendido.
un buscador de web alternativo basado en Lucene y Java para
la búsqueda e indexado de contenido. Primero se mapean las transacciones en conjuntos de
clave-valor mediante la función Map, siendo C= userId y V=
Para demostrar el poderío de procesamiento del nuevo productId; luego se hace lo mismo con la tabla de usuarios,
software Doug y Mike Cafarella en el año 2005 implementan siendo C=userId y V= lugar; por último la función Reduce
su propia versión de Mapreduce y un nuevo sistema de toma los lugars e ID de productos y los brinda como datos de
archivos distribuido, HDFS, tomando como base los trabajos salida en forma de clave-valor, siendo C=productId y
de Google. Éstos se desprenden más tarde del proyecto V=location.[9]
Nutch, mientras él trabajaba para la empresa Yahoo,
obteniendo su propio nombre: “Hadoop”, palabra tomada de
un neologismo creado por el hijo de Doug para nombrar un
elefante de juguete que luego pasa a ser su símbolo.
4
L. Ecosistema de Hadoop
Un trabajo MapReduce por lo general divide la entrada de Apache Flume es un sistema distribuido para capturar de
sets de datos en trozos independientes que son procesados por forma eficiente, agregar y mover grandes cuantidades de
las tareas de mapeo, de una manera completamente paralela. datos log de diferentes orígenes (diferentes servidores) a un
El framework clasifica los resultados de los mapas, que son repositorio central, simplificando el proceso de recolectar
luego ingresados como tareas a reducir. Por lo general, tanto estos datos para almacenarlos en Hadoop y poder analizarlos.
la entrada como la salida del trabajo se almacenan en un Flume y Chukwa son proyectos parecidos, la principal
sistema de archivos. El marco se hace cargo de la diferencia es que Chukwa está pensado para ser usado en
planificación de tareas y su seguimiento y vuelve a ejecutar Batch.
las tareas fallidas.
Hive es un sistema de Data Warehouse para Hadoop que
Posee un sistema de archivos distribuido basado en el facilita el uso de la agregación de los datos, consultas ad-hoc,
Google File System (GFS) llamado HDFS que permite y el análisis de grandes datasets almacenados en Hadoop.
replicación en n nodos del clúster, aunque por lo general cada Hive proporciona métodos de consulta de los datos usando
bloque de 64mb está replicado en 3 nodos, pero esto es un lenguaje parecido al SQL, llamado HiveQL. Además
configurable. Aquí se guardan los sets de datos a procesar. permite de usar los tradicionales Map/Reduce cuando el
rendimiento no es el correcto. Tiene interfaces JDBC/ODBC,
Normalmente los nodos de cómputo y los nodos de por lo que empieza a funcionar su integración con
almacenamiento son los mismos, es decir, el marco herramientas de BI.
MapReduce y el Sistema de archivos HDFS se están
ejecutando en el mismo conjunto de nodos. Esta HBase, se trata de la base de datos de Hadoop. HBase es
configuración permite al framework planificar eficazmente el componente de Hadoop a usar, cuando se requiere
las tareas en los nodos donde los datos ya están presentes, lo escrituras/lecturas en tiempo real y acceso aleatorio para
que resulta en un muy alto ancho de banda total a nivel grandes conjuntos de datos. Es una base de datos orientada a
clúster. la columna, eso quiere decir que no sigue el esquema
relacional. No admite SQL.
El marco MapReduce consta de un sólo JobTracker
maestro y un esclavo TaskTracker por clúster del nodo. El Apache Mahout, es un proyecto para crear aprendizaje
maestro es el responsable de la programación de tareas que lo automático y data mining usando Hadoop. Es decir, Mahout
componen los puestos de trabajo en los esclavos, el nos puede ayudar a descubrir patrones en grandes datasets.
seguimiento de ellos y de volver a ejecutar las tareas fallidas. Tiene algoritmos de recomendación, clustering y
Los esclavos se ejecutan las tareas según las instrucciones del clasificación.
maestro.
Apache Sqoop (“Sql-to-Hadoop”), es una herramienta
Mínimamente, las aplicaciones especifican la localización diseñada para transferir de forma eficiente bulk data entre
de las entradas y salidas y proveen las funciones de mapeo y Hadoop y sistemas de almacenamiento con datos
reducción mediante implementaciones apropiadas de estructurados, como bases de datos relacionales. Algunas de
interfaces o clases abstractas. Estos, y otros parámetros de sus características son que permite importar tablas
trabajo, comprenden la configuración de la misma. El cliente individuales o bases de datos enteras a HDFS. Genera clases
de trabajo de Hadoop luego envía el trabajo ejecutable y la Java que permiten interactuar con los datos importados.
configuración hasta el servicio JobTracker que asume la Además, permite importar de las bases de datos SQL a Hive.
responsabilidad de distribuir el software y la configuración a
5
IV. DESARROLLO
Zookeeper es un proyecto de Apache que proporciona una
infraestructura centralizada y de servicios que permiten la En este trabajo se van a analizar algunos de los casos de
sincronización del cluster. ZooKeeper mantiene objetos uso del concepto de Big Data más utilizados en el presente
comunes que se necesiten en grandes entornos de cluster. para dar un panorama de cuál será el futuro del análisis de
Algunos ejemplos de estos objetos son información de la datos a gran escala. Por otro lado se presentará un caso
configuración, jerarquía de nombres. concreto tomado de la experiencia del autor en una empresa
que realiza detección de fraudes mediante herramientas de
Lucene, se trata de una librería escrita en Java, para Big Data, a petición de otras.
buscar textos. Lucene permite indexar cualquier texto que
deseemos, permitiéndonos después encontrarlos basados en
cualquier criterio de búsqueda. Aunque Lucene sólo funciona
en texto plano, hay plugins que permite la indexación y
búsqueda de contenido en documentos Word, Pdf, XML o
páginas HTML.
Fig. 3. Ejemplo de uso de análisis de sentimiento con respecto a términos Fig. 4. Ejemplo de preguntas sobre el visitante web y fuentes usadas para
relacionados a un producto por Google Product Search. tomar datos para buscar información con respecto a su comportamiento.
Se analiza el tráfico de una página para tomar información El caso de análisis forense de los llamados “logs” de
relevante a un usuario web y así entender su comportamiento. servidores sirve para obtener información relevante al
comportamiento de los servicios que se proveen. Cada
Deben tomarse datos desde fuentes como clics en páginas servicio registra sus eventos en líneas de archivos de
web en particular (clickstream) y datos de “cookies” que se computadora, guardados en un formato persistente, que lo
han instalado como consecuencia de ingresar a la página que identifican unívocamente.
recogen todo tipo de comportamiento web, como qué páginas
se navega, por cuánto tiempo, cuántas veces se revisita el Estos datos son luego utilizados mayormente para analizar
sitio, desde qué país, tipo de conexión de internet, y en qué tráfico en un servidor web, estadísticas sobre performance,
punto lo abandonan. Además se pueden utilizar registros de picos de transacciones y caídas de servicios, análisis de
aplicaciones móviles, emails, tweets, sistemas de bases de cumplimiento de acuerdos de servicios, problemas de
datos múltiples, para realizar análisis de datos offline si se los seguridad, entre muchos otros.
posee.
En el caso de grandes empresas o programas con un muy
Se realiza para ofrecer un servicio personalizado, entender alto nivel de transacciones, la variedad de fuentes de datos, la
patrones de conducta de un consumidor para venderle un velocidad con la que hay que tomar decisiones para evitar
producto acorde a sus preferencias, o entender la forma de problemas en los servicios, y sobre todo el enorme volumen
venderle uno en particular, aunque también se analizan de transacciones, hacen que éste caso sea un gran candidato
ciertos comportamientos para saber si un usuario puede ser para la utilización de herramientas de Big Data como
un potencial delincuente, como por ejemplo en sitios de Hadoop.[14]
bancos.
Por último se trata de formar una imagen del visitante web
en base a modelos estadísticos para poder predecir su
comportamiento y tomar acciones acordes, como
personalizar su experiencia web y la de usuarios como él, o
también podría ser para bloquear cierto comportamiento
malicioso.[13]
Todo esto se puede usar para ser procesado para analizar F. Inteligencia en Análisis de Crimen
el comportamiento de personas y máquinas y tomar
decisiones en base a ello, ya sea en forma manual o Las fuerzas de seguridad generan y manejan una enorme
automática. cantidad de información para investigación y predicción del
crimen. Un departamento puede llegar a tener millones de
Una de las aplicaciones podría ser las llamadas Casas o llamadas de servicio al año, crear miles de informes de la
Ciudades Inteligentes, las cuales brindan a las personas y los policía, y examinar meses de vídeo y audio. Cuando se
gobiernos la posibilidad de usar la tecnología para analiza la información, los datos pueden crecer de forma
comprender y transformar en forma benéfica el quehacer exponencial.
diario.[15]
A nivel nacional, los organismos y departamentos tienen
que reducir sus recursos y mano de obra, además de
continuar la tendencia de una disminución de la tasa de
criminalidad. Para ello se requiere un mejor servicio con
menos recursos. Soluciones no tan caras como Hadoop, que
es código abierto, se han utilizado para almacenar y analizar
delincuencia, investigando tendencias criminales y cambios
en la demografía, para así predecir crimen y actuar en
consecuencia.
Fig. 11. Tipos de preguntas que pueden ser preguntadas con respecto a
corrupción con el procesamiento de Hadoop en EY.