Componentes de Apache Spark

Componentes

Componentes Spark

Componentes Spark

 

Spark Core

Spark core es en núcleo donde se apoya toda la arquitectura, proporciona:

  • Distribución de tareas
  • Programación
  • Operaciones de entrada/salida

Mediante interfaces de programación Java, Python, Scala y R centradas en la abstración de RDDs.

Establece un modelo funcional que permite realizar invocan operaciones en paralelo como map, filterreduce sobre un RDD, para ello se pasa una función a Spark, que planifica la ejecución en paralelo sobre el clúster.

 

Spark SQL

Spark SQL introduce un concepto de abstracción de datos llamado SchemaRD, que proporciona soporte para datos estructurados y semi-estructurados.

Los datos pueden ser manipulados usando:

  • Lenguaje específico como Scala, Java y Python.
  • Conectores ODBC/JDBC.

 

Spark Streaming

Spark Streaming es la capa encargada del análisis de datos en tiempo real.

Realiza la ingesta datos en mini-batches, esto tiene la ventaja de que también puede ser utilizado para el análisis por lotes (batch), aunque tiene el inconveniente de que la latencia es algo superior al tamaño del mini-branch.

Existen otros motores de streaming procesan evento por evento en lugar de mini lotes como Storm y Flink.

 

MLlib

MLLib es la capa de aprendizaje automático distribuido sobre el core, que proporciona el famework de aprendizaje automático donde se pueden encontrar multitud de algoritmos de clasificación, regresión, análisis cluster, reducción de dimensionalidad y estadísticos descriptivos.

Al tener una arquitectura en memoria, proporciona mayor velocidad de operación, se habla de en torno a 9 veces más rápido que Apache Mahout.

 

GraphX

GraphX es la capa de procesamiento gráfico distribuido sobre el core. Al basarse en RDDs inmutables, los gráficos no permiten actualizarse.

 

Fuente: spark.apache.org