Como hemos dicho
anteriormente un ecosistema big data cuenta normalmente con varios
productos, los cuales proveen diferentes funcionalidades.
En el caso de spark, no es una excepción. Apache Spark incluye:
Spark Streaming, Se utiliza para procesar información en tiempo real. Esto apoyados en un pequeño sistema micro-batch. A la vez esto usa Dstream que es una serie de RDDs que se procesan en tiempo real. Y para él que no sabe que es RDD (como yo) RDD es Resilient Distributed Dataset (RDD), la abstracción básica en Spark. Representa una colección de elementos inmutables y divididos que se pueden operar en paralelo.
Spark SQL permite exponer datos de dataset de spark bajo una API Jdbs y permite ejecutar consultas SQL-like con datos de Spark. Tambie permite estraer datos en diferentes formatos.
Spark MLlib : es una librería de maching learning de spark. Esta consiste en los algoritmos comunes de maching learning y utilidades.
Spark GraphX : Es la
API de Grafos y procesamiento de grafos en paralelo. GraphX amplía a
Spark RDD al introducir las propiedades de gráfos distribuidos
resistente: un multi-grafo dirigido con propiedades asociadas a cada
vértice y borde. Para admitir el cálculo de grafos, GraphX expone
un conjunto de operadores fundamentales (por ejemplo, subgraph,
joinVertices y aggregateMessages) y una variante optimizada de Pregel
API. Además, GraphX incluye una creciente colección de algoritmos y
constructores de grafos para simplificar el análisis de grafos.
Aparte de estas
librerías, hay otros framework que se integran muy bien con Spark:
Alluxio
(anteriormente conocido como Tachyon) es un sistema de archivos
distribuidos centrado en memoria, que permite compartir archivos de
forma segura en un cluster basado en Spark y mapReduce. Este
framework cachea un conjunto de datos en memoria, evitando ir a disco
a buscar los conjunto de datos frecuentes. Esto permite acelerar el
trabajo con Spark.
BlinkDb: es un motor
de consulta aproximada para ejecutar consultas SQL interactivas en
grandes volúmenes de datos. Permite a los usuarios intercambiar la
precisión de la consulta por el tiempo de respuesta. Funciona en
grandes conjuntos de datos ejecutando consultas en muestras de datos
y presentando resultados con un rango de error significativas. Las
versiones posteriores de BlinkDB se mantienen bajo un nuevo proyecto
llamado iOLAP.