Introducción a Apache Spark

Historia y arquitectura de Spark

Apache Spark es un motor de análisis de datos a gran escala que fue desarrollado en el AMPLab de la Universidad de California, Berkeley. Fue diseñado para superar las limitaciones de Hadoop MapReduce, ofreciendo una mayor velocidad y facilidad de uso. Spark permite el procesamiento en memoria, lo que mejora significativamente el rendimiento de las aplicaciones de análisis de datos.

La arquitectura de Spark se basa en un modelo maestro-esclavo. El Driver es el maestro que gestiona el proceso principal y coordina la ejecución de las tareas. Los Workers son los esclavos que realizan las tareas de procesamiento. Spark distribuye los datos en Resilient Distributed Datasets (RDDs), que son estructuras de datos distribuidas e inmutables.

Spark está compuesto por varios componentes principales:

  • Spark Core: El núcleo que proporciona las funcionalidades básicas de Spark, como la gestión de tareas y el procesamiento de datos.
  • Spark SQL: Un módulo para trabajar con datos estructurados usando SQL y DataFrames.
  • Spark Streaming: Permite el procesamiento de datos en tiempo real.
  • MLlib: Librería para machine learning.
  • GraphX: API para el procesamiento de grafos.

Instalación y configuración

Para comenzar a trabajar con Apache Spark, es necesario instalar y configurar el entorno adecuado. Spark puede ser ejecutado en modo local (en una sola máquina) para propósitos de desarrollo y pruebas, o en un clúster para procesamiento a gran escala. A continuación, se describen los pasos básicos para instalar y configurar Spark en un entorno local.

  1. Prerequisitos:

    • Java: Spark requiere Java 8 o superior. Asegúrate de tenerlo instalado y configurado en tu PATH.
    • Python (opcional): Si planeas usar PySpark, asegúrate de tener Python instalado.
    • Hadoop (opcional): Si planeas ejecutar Spark en un clúster Hadoop, instala Hadoop.
  2. Descargar Spark:

    • Ve al sitio oficial de Apache Spark y descarga la versión de Spark que prefieras.
    • Elige la versión de Hadoop que deseas usar (si no usas Hadoop, selecciona «Pre-built for Apache Hadoop»).
  3. Descomprimir y Configurar Spark:

    • Descomprime el archivo descargado en tu directorio de preferencia.
    • Configura las variables de entorno necesarias, como SPARK_HOME y agrega Spark al PATH.
  4. Ejecutar Spark en Modo Local:

    • Usa spark-shell para iniciar la consola interactiva de Spark en Scala.
    • Usa pyspark para iniciar la consola interactiva de Spark en Python.
				
					# Descargar y descomprimir Spark
wget https://downloads.apache.org/spark/spark-3.1.2/spark-3.1.2-bin-hadoop2.7.tgz
tar -xzf spark-3.1.2-bin-hadoop2.7.tgz
mv spark-3.1.2-bin-hadoop2.7 /usr/local/spark

# Configurar variables de entorno
echo "export SPARK_HOME=/usr/local/spark" >> ~/.bashrc
echo "export PATH=$PATH:$SPARK_HOME/bin" >> ~/.bashrc
source ~/.bashrc

# Verificar la instalación
spark-shell

				
			

Explicación del Código

  1. Descargar y Descomprimir Spark:

    • Se usa wget para descargar Spark desde el sitio oficial.
    • Se descomprime el archivo tar.gz con tar -xzf.
    • Se mueve el directorio descomprimido a /usr/local/spark.
  2. Configurar Variables de Entorno:

    • Se añade SPARK_HOME al archivo .bashrc, apuntando al directorio de instalación de Spark.
    • Se añade el directorio bin de Spark al PATH para poder ejecutar comandos de Spark desde cualquier lugar en la terminal.
    • Se recargan las configuraciones del archivo .bashrc con source ~/.bashrc.
  3. Verificar la Instalación:

    • Se ejecuta spark-shell para iniciar la consola interactiva de Spark en Scala y verificar que Spark esté correctamente instalado y configurado.