Componentes
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, filter o reduce 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
0 comentarios