Inicio > Apache Spark: Introducción, qué es y cómo funciona

Apache Spark: Introducción, qué es y cómo funciona

Recurso artículo | Big data | 4 minutos de lectura


Miguel Moraleja Yudego
Head of Data

Apache Spark es un framework de programación para procesamiento de datos distribuidos diseñado para ser rápido y de propósito general. Como su propio nombre indica, ha sido desarrollada en el marco del proyecto Apache, lo que garantiza su licencia Open Source.
Además, podremos contar con que su mantenimiento y evolución se llevarán a cabo por grupos de trabajo de gran prestigio, y existirá una gran flexibilidad e interconexión con otros módulos de Apache como Hadoop, Hive o Kafka.
Parte de la esencia de Spark es su carácter generalista. Consta de diferentes APIs y módulos que permiten que sea utilizado por una gran variedad de profesionales en todas las etapas del ciclo de vida del dato.
Dichas etapas pueden incluir desde soporte para análisis interactivo de datos con SQL a la creación de complejos pipelines de machine learning y procesamiento en streaming, todo usando el mismo motor de procesamiento y las mismas APIs.


Descarga gratis la guía: Computación cognitiva. La nueva revolución del Big Data

Apache Spark: Su relación con Hadoop

Una de las grandes preguntas sobre Spark es su relación con Hadoop. ¿Se trata de otra tecnología competencia del famoso framework? En realidad, Spark es la evolución natural de Hadoop, cuya funcionalidad es muy rígida y limitada en el sentido de que no aprovecha al máximo las capacidades del procesamiento distribuido.
Algunas de las evoluciones que supone Spark frente a su predecesor son el procesamiento en memoria que disminuye las operaciones de lectura/escritura, la posibilidad de análisis interactivo con SQL  (similar a Hive en cierto modo) y la facilidad para interactuar con múltiples sistemas de almacenamiento persistente.

Apache Spark: ¿Cómo funciona?

Apache Spark es un motor de procesamiento distribuido responsable de orquestar, distribuir y monitorizar aplicaciones que constan de múltiples tareas de procesamiento de datos sobre varias máquinas de trabajo, que forman un cluster.
Como ya hemos mencionado, es posible leer los datos desde diferentes soluciones de almacenamiento persistente como Amazon S3 o Google Storage,  sistemas de almacenamiento distribuido como HDFS, sistemas key-value como Apache Cassandra, o buses de mensajes como Kafka.
A pesar de ello, Spark no almacena datos en sí mismo, sino que tiene el foco puesto en el procesamiento. Este es uno de los puntos que lo diferencian de Hadoop, que incluye tanto un almacenamiento persistente (HDFS) como un sistema de procesamiento (MapReduce) de un manera muy integrada.
Es importante hablar de la velocidad de procesamiento: la clave es la posibilidad que ofrece Spark para realizar el procesamiento en memoria. Esto, y la extensión del popular MapReduce para permitir de manera eficiente otros tipos de operaciones: Queries interactivas y Procesamiento en Streaming.

Apache Spark: ¿Cuáles son sus funciones?

Respecto a su propósito general, la virtud de Spark es estar diseñado para cubrir una amplia gama de cargas de trabajo que previamente requerían sistemas distribuidos diferentes.
Éstos sistemas incluyen procesamiento batch, algoritmos iterativos, queries interactivas, procesamiento streaming… a menudo empleados todos ellos en un pipeline típico de análisis de datos.
Por último, hemos dicho que Spark es flexible en su utilización, y es que ofrece una serie de APIs que permiten a usuarios con diferentes backgrounds poder utilizarlo. Incluye APIs de Python, Java, Scala, SQL y R, con funciones integradas y en general una performance razonablemente buena en todas ellas.
Permite trabajar con datos más o menos estructurados (RDDs, dataframes, datasets) dependiendo de las necesidades y preferencias del usuario.
Además, como hemos ido viendo a lo largo del post, se integra de manera muy cómoda con otras herramientas Big Data, en especial aquellas procedentes del proyecto Apache.
En particular, como era de esperar, cabe destacar la integración con Hadoop: Spark puede ejecutarse en clusters Hadoop y acceder a los datos almacenados en HDFS y otras fuentes de datos de Hadoop (Cassandra, Hbase, Kafka…).
¿Quieres aprender las técnicas para desarrollar, analizar, gestionar y ejecutar proyectos de Big Data? Fórmate con el Máster en Big Data Management de ICEMD. Encuentra toda la información e inscripciones, aquí.


Descargar e-Book


Recursos relacionados

05 Oct 2018
E-business: 3 tendencias clave que marcarán la diferencia

El impacto de las nuevas tecnologías, aún en un entorno nativo digital como el e-business, nos enseña cómo la disrupción puede actuar de palanca para acentuar la ventaja competitiva de cualquier negocio. A continuación, veremos casos de correcta implementación de nuevas tendencias tecnológicas.

03 Oct 2018
Compra programática: una de las alternativas más eficaces al marketing digital

La compra programática se está posicionando como uno de los medios más eficaces de aumentar el ROI de la estrategia publicitaria. En este artículo veremos en qué consiste dicha disciplina, y cómo puede ayudarnos a la hora de mejorar nuestra publicidad digital.

27 Sep 2018
Máster Big Data para acceder al apasionante mundo de los datos

Los másters siempre han sido un plus diferenciador para acceder a un mercado laboral competitivo. Pero debes asegurarte, al realizar un máster Big Data, de que cuente con profesores cualificados y con experiencia contrastada.

26 Sep 2018
Contratos Inteligentes: qué son, orígenes y principales aplicaciones

Hemos oído hablar de “contratos inteligentes”, blockchains y criptomonedas. Pero ¿qué son en realidad? Aquí descubrirás qué son, verás un ejemplo práctico y sus posibles aplicaciones.