Ecosistema Big Data

take control of your data

“Big Data está en la base de todas las grandes tendencias de hoy en día, de las redes sociales a mobile, de cloud a gaming” José Ruiz Responsable de Big Data en Paradigma

En los últimos años han surgido multitud de nuevas tecnologías dentro del ecosistema Big Data. El principal objetivo es disponer de herramientas lo bastante potentes para procesar y almacenar grandes volúmenes de información.

El desarrollo y la evolución de la tecnología es vertiginoso, continuamente están apareciendo nuevas tecnologías que mejoran a las anteriores y las dejan obsoletas.

A continuación podemos ver cuales son las tecnologías Big Data más relevantes hoy en día y como podemos clasificarlas.

Mapa del ecosistema Big Data

BigDataInfo_iconChanged

Podemos clasificar las diferentes tecnologías del ecosistema Big Data en 7 categorías.

Ingestion

Tecnologías orientadas a la recolección de los datos desde su origen, por ejemplo en bases de datos tradicionales, o en flujos continuos a través de la red.

Almacenamiento

Tecnologías capaces de guardar y gestionar grandes volúmenes de datos, en este grupo estarían las bases de datos NoSQL.

Gestión de recursos

Tecnologías diseñadas para planificación y asignación de los recursos del cluster, donde realizaremos todo el procesamiento.

Motores de procesamiento

El corazón de la tecnología Big Data, son capaces de realizar el cómputo de manera distribuida, lo que significa repartir el trabajo entre varios nodos de computación y realizar operaciones costosas en tiempos pequeños.

Mensajería

Tecnologías que nos permiten el intercambio de datos entre los diferentes componentes software de manera eficiente, en esta categoría se ubican todas las colas de mensajes.

Bibliotecas de consulta

Multitud de bibliotecas orientadas a simplificar el acceso a los datos, generalmente se basan en los motores de procesamiento para realizar las consultas de manera eficiente.

Bibliotecas de Machine Learning

Tecnologías que implementan algoritmos para clasificar, predecir o perfilar. Se basan en los motores de procesamiento paralelo de los que aprovechan su capacidad de realizar cálculos complejos muy rápido.

Tecnologías Big Data

A continuación podemos ver una breve descripción de las tecnologías Big Data más importantes hoy en día.

Flume

Flume es un servicio distribuido para recolectar de forma eficiente grandes volúmenes de datos. Sigue una arquitectura flexible y tolerante a fallos basada en agentes. Permite ingestar datos de multitud de orígenes como HTTP, Syslog, NetCat,
Kafka o Avro.

Sqoop

Sqoop es una herramienta diseñada para transferir de forma eficiente grandes paquetes de datos entre Hadoop HDFS y bases de datos relacionales como MySQL, Oracle o PostgreSQL.

Kafka

Kafka es un sistema de mensajería distribuido de alto rendimiento, está diseñado para manejar cientos de MB de mensajes por segundo, generados y consumidos por miles de clientes y ordenados en “topics”. Es escalable gracias a que puede ejecutar
a lo largo de un cluster de nodos.

RabbitMQ

Es un sistema de colas de mensajes muy extendido, soporta múltiples opciones de configuración, clustering y alta disponibilidad. Además incluye un sistema de plugins por el cual se puede extender su funcionalidad. Es posible obtener soporte comercial
a través de Pivotal, la compañía que lo soporta.

Cassandra

Cassandra es una base de datos NoSQL linealmente escalable. Es distribuida y basada en un modelo de almacenamiento de clave-valor y orientado a columnas. Es totalmente descentralizada, siguiendo una arquitectura de anillo sin nodo maestro o punto
único de fallo.

Hadoop HDFS

Se trata de un sistema distribuido de ficheros diseñado para funcionar sobre hardware commodity. Está inspirado por un paper de Google y es una de las piezas más importantes de Hadoop. Ofrece un alto rendimiento y soporta archivos de gran tamaño.
Es tolerante a fallos.

MongoDB

MongoDB es una base de datos orientada a documento. Define un API propia para hacer queries y framework para agregaciones complejas. Tiene soporte para replicación, sharding e indexado. Es la más popular de las bases de datos orientadas a documentos.

Elastic

Es un servidor de búsqueda de texto completo distribuido. Ofrece un API RESTful para realizar consultas. Los tiempos de búsqueda son muy buenos, en gran medida gracias al sistema de índices que tiene.

Yarn

Yarn es uno de los componentes de Hadoop dedicado a la gestión de recursos. Es el responsable de manejar los recursos de computación del cluster y planificar el trabajo de los usuarios y las aplicaciones. También monitoriza el estado de los procesos.
Ha sido diseñado con una arquitectura maestro/esclavo.

Mesos

Mesos es un sistema distribuido para la gestión de los recursos de un cluster desarrollado por la Universidad de Berkeley. Ofrece un API única a las aplicaciones para la gestión y planificación a lo largo del datacenter. Está preparado para soportar
hasta 10.000 nodos.

Hadoop MapReduce

Se trata de la implementación MapReduce Hadoop. Está diseñado para trabajar sobre HDFS, procesando los datos en paralelo de acuerdo al paradigma Map/Reduce. Está orientado al procesamiento de trabajos en batch y hace un uso intensivo del disco lo que penaliza su rendimiento. Fue el primer framework importante de procesamiento distribuido que surgió.

Spark

Spark es un framework para procesamiento distribuido posterior a Hadoop, fue diseñado desde cero pensando en sustituir el componente MapReduce. Soporta un conjunto mayor de transformaciones que pueden ser ejecutadas en paralelo. Trabaja intensivamente en memoria lo que lo hace hasta 100 veces más rápido que Hadoop MapReduce. Soporta procesamiento en streaming.

Storm

Storm es un motor de procesamiento distribuido orientado a eventos en tiempo real. El proyecto fue impulsado por Twitter. Su diseño está orientado a procesar de forma muy rápida los eventos recibidos, llegando a procesar más de 1 millón de registros por segundo y nodo.

Flink

Flink es un motor de procesamiento de reciente aparición. Orientado al procesamiento en streaming y a obtener un alto rendimiento a una baja latencia. Ofrece un API rica de transformaciones y cabe destacar su sistema de gestión de ventanas de eventos que permite asegurar la recepción de eventos en el el orden correcto.

Spark MLlib

Spark MLlib es un framework que incluye algoritmos de machine learning implementados sobre Spark y aprovechando de esta manera las ventajas del cálculo distribuido y el trabajo intensivo en memoria que nos ofrece Spark. Incluye algoritmos de clasificación, regresión y clustering entre otros.

FlinkML

FlinkML es la biblioteca de algoritmos de machine learning sobre el core de Flink. Es una biblioteca muy nueva, que de momento incluye muy pocos algoritmos.

Hive

Hive nació inicialmente como un subproyecto del proyecto Hadoop, nos ofrece un conjunto de herramientas para leer, escribir y manejar datos sobre Hadoop con una sintaxis similar a SQL. Incluye un driver JDBC.

Pig

Pig es un proyecto complementario al proyecto Hadoop. Nos ofrece un lenguaje de scripting de alto nivel para manejar datos que internamente se transforman en trabajos map/reduce sobre Hadoop.

Spark SQL

Spark SQL es el módulo incluido en Spark para trabajar con datos estructurados usando una sintaxis de estilo SQL, pero aprovechando las ventajas de ejecutar sobre el core de Spark. También nos ofrece un conector JDBC.