Está en la página 1de 32

Big Data

Enormes cantidades de datos


(estructurados, no estructurados y
semi estructurados) que tomara
demasiado tiempo y sera muy
costoso cargarlos a un base de datos
relacional para su anlisis

Se habla en trminos de
petabytes y exabytes de datos

De una manera rpida sin afectar la


disponibilidad de la informacin y
operacin de los sistemas.
Las consultas hechas en Big Data
ayudan al anlisis y a la toma de
decisiones.
Gigabyte = 109 = 1,000,000,000
Terabyte = 1012 = 1,000,000,000,000
Petabyte = 1015 =
1,000,000,000,000,000
Exabyte = 1018 =
1,000,000,000,000,000,000

Adems del gran volumen de


informacin, esta existe en una
gran variedad de datos que pueden
ser representados de diversas maneras
en todo el mundo, por ejemplo de
dispositivos mviles, audio, video,
sistemas GPS, incontables sensores
digitales en equipos industriales,
automviles, medidores elctricos,
veletas, anemmetros, etc

Los cuales pueden medir y


comunicar el posicionamiento,
movimiento, vibracin, temperatura,
humedad y hasta los cambios
qumicos que sufre el aire, de tal
forma que las aplicaciones que
analizan estos datos requieren que
la velocidad de respuesta sea lo
demasiado rpida para lograr
obtener la informacin correcta en el
momento preciso.
Estas son las caractersticas
principales de una oportunidad
para Big Data.

Componente

Plataforma de cdigo abierto Hadoop.


Hadoop est inspirado en el proyecto de Google File System(GFS) y en el
paradigma de programacin MapReduce, el cual consiste en dividir en dos
tareas (mapper reducer) para manipular los datos distribuidos a nodos de
un clster logrando un alto paralelismo en el procesamiento.

Hadoop est compuesto de tres piezas:


Hadoop Distributed File System (HDFS)
Hadoop MapReduce
Hadoop Common
http://hadoop.apache.org/

Hadoop Distributed File System(HDFS)

Los datos en el clster de Hadoop son divididos en pequeas piezas


llamadas bloques y distribuidas a travs del clster; de esta manera, las
funciones map y reduce pueden ser ejecutadas en pequeos
subconjuntos y esto provee de la escalabilidad necesaria para el
procesamiento de grandes volmenes.

La siguiente figura ejemplifica como los bloques de datos son escritos


hacia HDFS. Observe que cada bloque es almacenado tres veces y al
menos un bloque se almacena en un diferente rack para lograr redundancia.

Hadoop MapReduce

MapReduce es el ncleo de Hadoop. El trmino MapReduce en realidad se


refiere a dos procesos separados que Hadoop ejecuta.
El proceso map, el cual toma un conjunto de datos y lo convierte en otro
conjunto, donde los elementos individuales son separados en tuplas(pares de
llave/valor).
El proceso reduce obtiene la salida de map como datos de entrada y
combina las tuplas en un conjunto ms pequeo de las mismas. Una fase
intermedia es la denominada Shuffle la cual obtiene las tuplas del
proceso map y determina que nodo procesar estos datos dirigiendo la salida a
una tarea reduce en especfico.

La siguiente figura ejemplifica un flujo de datos en un proceso sencillo de


MapReduce.

Hadoop Common
Hadoop Common Components son un conjunto de libreras que soportan
varios subproyectos de Hadoop.
Existen otros proyectos relacionados los cuales son definidos a
continuacin

Avro
Es un proyecto de Apache que provee servicios de serializacin.
Cuando se guardan datos en un archivo, el esquema que define ese archivo
es guardado dentro del mismo; de este modo es ms sencillo para cualquier
aplicacin leerlo posteriormente puesto que el esquema esta definido dentro
del archivo
https://avro.apache.org/docs/1.7.7/gettingstartedjava.html

Cassandra

Cassandra es una base de datos no relacional distribuida y basada en un


modelo de almacenamiento de <clave-valor>, desarrollada en Java. Permite
grandes volmenes de datos en forma distribuida.

Cassandra es utilizado por numerosas empresas conocidas como Digg,


Facebook, Twitter, Cisco o RackSpace.

http://cassandra.apache.org/

Chukwa
Diseado para la coleccin y anlisis a gran escala de "logs". Incluye un
toolkit para desplegar los resultados del anlisis y monitoreo.

https://chukwa.apache.org/docs/r0.3.0/design.html

Flume

Su tarea principal es dirigir los datos de una fuente hacia alguna otra
localidad, en este caso hacia el ambiente de Hadoop.
Existen tres entidades principales: sources, decorators y sinks.
Unsource : es bsicamente cualquier fuente de datos.
Sink : es el destino de una operacin en especfico.
Undecorator : es una operacin dentro del flujo de datos que transforma
esa informacin de alguna manera, como por ejemplo comprimir o
descomprimir los datos o alguna otra operacin en particular sobre los
mismos.

https://flume.apache.org/

HBase

Es una base de datos columnar (column-oriented database) que se ejecuta


en HDFS.
HBase no soporta SQL, de hecho, HBase no es una base de datos
relacional.
Cada tabla contiene filas y columnas como una base de datos relacional.
HBase permite que muchos atributos sean agrupados llamndolos familias de
columnas, de tal manera que los elementos de una familia de columnas son
almacenados en un solo conjunto.
Facebook utiliza HBase en su plataforma desde Noviembre del 2010
https://hbase.apache.org/

Hive

Es una infraestructura de data warehouse que facilita administrar


grandes conjuntos de datos que se encuentran almacenados en un
ambiente distribuido.
Hive tiene definido un lenguaje similar a SQL llamado Hive Query
Language(HQL), estas sentencias HQL son separadas por un servicio de
Hive y son enviadas a procesos MapReduce ejecutados en el cluster de
Hadoop.

https://hive.apache.org/

Jaql
Fue donado por IBM a la comunidad de software libre.
Query Language for Javascript Object Notation (JSON) es un lenguaje
funcional y declarativo que permite la explotacin de datos en formato
JSON diseado para procesar grandes volmenes de informacin.

Para explotar el paralelismo, Jaql reescribe los queries de alto nivel


(cuando es necesario) en queries de "bajo nivel" para distribuirlos
como procesos MapReduce.

http://www.ibm.com/developerworks/ssa/local/im/utilizando-jaqlpara-analizar-big-data/index.html

Lucene

Es un proyecto de Apache bastante popular para realizar bsquedas sobre


textos.
Lucene provee de libreras para indexacin y bsqueda de texto. Ha
sido principalmente utilizado en la implementacin de motores de
bsqueda.
El concepto a nivel de arquitectura de Lucene es simple, bsicamente
los documentos (document) son dividos en campos de texto (fields)
y se genera un ndice sobre estos campos de texto.
La indexacin es el componente clave de Lucene, lo que le permite realizar
bsquedas rpidamente independientemente del formato del archivo, ya sean
PDFs, documentos HTML, etc.

https://lucene.apache.org/core/

Oozie

Como pudo haber notado, existen varios procesos que son ejecutados en
distintos momentos los cuales necesitan ser orquestados para satisfacer
las necesidades de tan complejo anlisis de informacin.
Oozie es un proyecto de cdigo abierto que simplifica los flujos de
trabajo y la coordinacin entre cada uno de los procesos. Permite
que el usuario pueda definir acciones y las dependencias entre dichas
acciones
http://oozie.apache.org/

Pig
Inicialmente desarrollado por Yahoo para permitir a los usuarios de
Hadoop enfocarse ms en analizar todos los conjuntos de datos y
dedicar menos tiempo en construir los programas MapReduce.

Tal como su nombre lo indica al igual que cualquier cerdo que come
cualquier cosa, el lenguaje PigLatin fue diseado para manejar
cualquier tipo de dato y Pig es el ambiente de ejecucin donde estos
programas son ejecutados, de manera muy similar a la relacin entre la
mquina virtual de Java (JVM) y una aplicacin Java.

https://pig.apache.org/

ZooKeeper

ZooKeeper cdigo abierto de Apache que provee de una infraestructura


centralizada y de servicios que pueden ser utilizados por aplicaciones
para asegurarse de que los procesos a travs de un cluster sean
serializados o sincronizados.
Internamente en ZooKeeper una aplicacin puede crear un archivo que se
persiste en memoria en los servidores ZooKeeper llamado znode.
Este archivo znode puede ser actualizado por cualquier nodo en el cluster, y
cualquier nodo puede registrar que sea informado de los cambios ocurridos en
ese znode.
Un servidor puede ser configurado para "vigilar" un znode en particular. De
este modo, las aplicaciones pueden sincronizar sus procesos a travs de un
cluster distribuido actualizando su estatus en cada znode, el cual informar al
resto del cluster sobre el estatus correspondiente de algn nodo en especfico

https://zookeeper.apache.org/

In-Genius

Software AG ha presentado una plataforma nativa in-memory que permite


obtener informacin en tiempo real para que las organizaciones puedan
llevar a cabo estrategias basadas en Big Data. La nueva plataforma,
llamada In-Genius de Terracotta permite descubrir valiosa informacin
oculta para actuar en consecuencia, de forma que las empresas puedan
reducir significativamente el riesgo, automatizar los procesos de negocio e
implantar nuevas ofertas, productos y servicios de forma rpida. Todo ello en
tiempo real.

Bigmemory
El manejo de grandes conjuntos de
datos siempre ha sido una
preocupacin para los usuarios.
Una vez que el tamao del conjunto de
datos llega por encima del 50% de la
RAM, se considera "masiva" y,
literalmente, puede llegar a ser imposible
trabajar con una mquina estndar.
Bigmemory es un enfoque de software y
hardware que facilita el almacenamiento
/ recuperacin / procesamiento de
grandes conjuntos de datos (terabytes y
ms altos).

Herramientas
BigMemory 4.0 de Terracotta
Con Big Memory 4.0. es
posible trasladar toda la
informacin desde las
tradicionales y
lentas unidades de disco a
memoria RAM de forma
extremadamente rpida,
permitiendo realizar anlisis
de cientos de terabytes de
datos en arrays de
memoria.
BigMemory 4.0 tambin
ofrece compatibilidad
con Hadoop

BUSQUEDAS FULL TEXT

El manejo de grandes volmenes de texto siempre es una complicacin


para los sistemas y sobre todo para nosotros, los desarrolladores.
Cuando tenemos la necesidad de manejar campos con grandes
cantidades de texto empiezan nuestras complicaciones y esto se
potencia si el usuario necesita buscar una palabra, por supuesto no la
primera palabra de la frase, sino una que esta en cualquier parte de la
frase.
Aqu es donde hacen su aparicin triunfal los productos que permite hacer
ndices sobre estos campos.

Herramientas

Apache Lucene
Es til para cualquier aplicacin que requiera indexado y bsqueda a texto
completo. Lucene ha sido ampliamente usado por su utilidad en la
implementacin de motores de bsquedas
Zoie es el sistema de indexado y bsqueda en tiempo real de Linkedin.
Linkedin lo don como proyecto Open Source en 2008 y su sitio web sigue
utilizando, gestionando millones de bsquedas diariamente. Se trata de una
modificacin de Lucene adaptndola a los requisitos de Linkedin sin incluir
funcionalidades como sharding, tolerancia a fallos, etc. que sera necesario
aadir.

Katta
Katta es una librera, no demasiado conocida, basada en Hadoop y Lucene.
Bsicamente realiza sharding sobre los ndices de Lucene sirviendo de este
modo un nico ndice repartido entre mltiples servidores. Tiene licencia
Apache y ofrece acceso en tiempo real a los ndices adems de encargarse
automticamente del sharding y la tolerancia a fallos.
El Sharding es una tcnica que consiste
en particionar los datos de tu base de
datos horizontalmente agrupndolos de
algn modo que tenga sentido y que
permita un direccionamiento ms rpido

Solandra
Solandra es un motor de bsqueda en tiempo real basado
en Solr y Cassandra. Cassandra es una base de datos distribuida
desarrollada por Facebook y que sigue el paradigma NoSQL. Su
arquitectura, tal y como comentan en su wiki, se basa en el modelo de
datos de BigTable (Google) y la arquitectura y modelo distribuido de
Dynamo (Amazon)

Ver ejemplo practico

También podría gustarte