Apache Spark – Introducción

Las industrias utilizan Hadoop ampliamente para analizar sus conjuntos de datos. La razón es que el marco de Hadoop se basa en un modelo de programación simple (MapReduce) y proporciona una solución informática escalable, flexible, tolerante a fallas y rentable. El principal desafío aquí es mantener la velocidad de procesamiento de grandes conjuntos de datos en términos de tiempo de espera entre solicitudes y tiempo de espera para el inicio del programa.

Spark fue introducido por Apache Software Foundation para acelerar el proceso de software computacional Hadoop.

Contrariamente a la creencia común, Spark no es una versión modificada de Hadoop y realmente no depende de Hadoop, ya que tiene su propia administración de clústeres. Hadoop es solo una forma de implementar Spark.

Spark usa Hadoop de dos formas. almacenamiento y el segundo tratamiento… Dado que Spark tiene su propio cálculo de administración de clústeres, usa Hadoop solo para almacenamiento.

Apache Spark

Apache Spark es una tecnología de computación en clúster ultrarrápida diseñada para computación rápida. Se basa en Hadoop MapReduce y amplía el modelo MapReduce para aprovecharlo para más tipos de cálculo, incluidas consultas interactivas y transmisión. La característica principal de Spark es computación en clúster en memoria lo que aumenta la velocidad de procesamiento de la aplicación.

Spark está diseñado para cubrir una amplia gama de cargas de trabajo, como aplicaciones por lotes, algoritmos iterativos, consultas interactivas y transmisión. Además de admitir todas estas cargas de trabajo en el sistema apropiado, reduce la carga de administración asociada con el soporte de herramientas individuales.

Evolución de Apache Spark

Spark es uno de los subproyectos de Hadoop desarrollado en 2009 en AMPLab de UC Berkeley por Matei Zachariah. Fue inaugurado en 2010 bajo la licencia BSD. Fue donado a Apache Software Foundation en 2013 y ahora Apache Spark ha sido un proyecto Apache de alto nivel desde febrero de 2014.

Funciones de Apache Spark

Apache Spark tiene las siguientes características.

  • Velocidad – Spark le ayuda a ejecutar una aplicación en un clúster de Hadoop hasta 100 veces más rápido en memoria y 10 veces más rápido cuando se ejecuta en disco. Esto es posible reduciendo el número de operaciones de lectura / escritura en el disco. Almacena datos de procesamiento intermedio en la memoria.

  • Soporta múltiples idiomas – Spark proporciona API integradas en Java, Scala o Python. Por lo tanto, puede escribir aplicaciones en diferentes idiomas. Spark ofrece 80 operadores de alto nivel para consultas interactivas.

  • Analítica avanzada – Spark admite algo más que Map y Shrink. También admite consultas SQL, transmisión de datos, aprendizaje automático (ML) y algoritmos Graph.

Spark basado en Hadoop

El siguiente diagrama muestra tres formas de crear Spark con componentes de Hadoop.

Spark basado en Hadoop

Hay tres formas de implementar Spark, como se describe a continuación.

  • Autónomo – La implementación autónoma de Spark significa que Spark se ubica en la parte superior de HDFS (sistema de archivos distribuido de Hadoop) y HDFS se asigna explícitamente. Aquí Spark y MapReduce trabajarán uno al lado del otro para cubrir todos los trabajos de Spark en el clúster.

  • Hilo de Hadoop – Implementar Hadoop Yarn simplemente significa ejecutar Spark en Yarn sin preinstalación ni acceso de root requerido. Esto ayuda a integrar Spark en el ecosistema de Hadoop o la pila de Hadoop. Esto permite que otros componentes se ejecuten en la parte superior de la pila.

  • Spark en MapReduce (SIMR) – Spark en MapReduce se usa para ejecutar Spark Job además de la implementación fuera de línea. Con SIMR, un usuario puede iniciar Spark y usar su shell sin ningún acceso administrativo.

Componentes de chispa

La siguiente figura muestra los distintos componentes de Spark.

Componentes de chispa

Núcleo de Apache Spark

Spark Core es el principal motor de ejecución general de la plataforma Spark, en el que se construyen todas las demás funciones. Proporciona cálculos en memoria y referencias a conjuntos de datos en sistemas de almacenamiento externos.

Spark SQL

Spark SQL es un componente sobre Spark Core que introduce una nueva abstracción de datos llamada SchemaRDD que brinda soporte para datos estructurados y semiestructurados.

Spark Streaming

Spark Streaming aprovecha la capacidad de programación rápida de Spark Core para realizar análisis de transmisión. Toma datos en mini-paquetes y realiza transformaciones RDD (Resilient Distributed Datasets) en esos mini-paquetes de datos.

MLlib (biblioteca de aprendizaje automático)

MLlib es un marco de aprendizaje automático distribuido que supera a Spark gracias a su arquitectura Spark basada en memoria distribuida. Esto, según las pruebas, lo hacen los desarrolladores de MLlib para implementar mínimos cuadrados alternativos (ALS). Spark MLlib es nueve veces más rápido que la versión en disco de Hadoop. Apache Mahout (antes de que Mahout obtuviera la interfaz Spark).

GraphX

GraphX ​​es un marco de procesamiento de gráficos distribuido sobre Spark. Proporciona una API para expresar cálculos de gráficos que pueden modelar gráficos definidos por el usuario utilizando la API de abstracción de Pregel. También proporciona un tiempo de ejecución optimizado para esta abstracción.

🚫