Saltar al contenido →

Guía de instalación de Apache Spark en Windows

Apache Spark se ha convertido en el referente cuando se habla de motores de análisis para el procesamiento de datos a gran escala.

Desarrollado originariamente por la Universidad de Berkeley, poco después fue donado a la Apache Foundation donde su desarrollo no ha parado de crecer.

A día de hoy ofrece soporte para procesar datos provenientes de streams, aporta capacidad de Machine Learning, utilidades para trabajar con grafos y colecciones además de permitir interrogar los datos con el lenguaje SQL.

En este artículos verás cómo se realiza la instalación de Apache Spark en ordenadores Windows, si como yo, tu ordenador de trabajo emplea ese sistema operativo.

Descargando Apache Spark

Lo primero que necesitamos es el software y para ello nos dirigimos a la página de descarga de Apache Spark y elegimos dos cosas:

  1. La versión de Spark. En mi caso es la última, que en el momento de escribir esta guía es la 2.4.0
  2. El tipo de paquete. Podemos elegir entre una versión de Hadoop que viene con el paquete o usar una que tengamos instalada. En mi caso selecciono Apache Hadoop 2.7

Una vez seleccionado todo pulsamos en el enlace con el archivo comprimido. En cuanto lo tengamos en nuestro ordenador lo descomprimimos en la carpeta de destino de nuestra instalación de Apache Spark.

Descargando Java 8

Un requisito para la ejecución de Apache Spark es la presencia de una máquina virtual Java en el ordenador.

La versión de 2.4 de Spark funciona con la versión 8 de Java, así que si no la tienes instalada en tu ordenador dirígete a la página de descarga del Java Runtime Environment y selecciona la versión de 32 o 64 bits, dependiendo de la arquitectura de tu ordenador.

Tras instalarla ya estás listo para el siguiente paso.

Descargando Winutils

Antes de que te preguntes qué es eso de Winutils déjame decirte que son un conjunto de herramientas necesarias para que la instalación de Hadoop pueda funcionar en Windows.

Si recuerdas, en el momento de la descarga de Apache Spark indicamos que queríamos el paquete con Apache Hadoop 2.7 y una de las condiciones que existen para que Hadoop funcione en ordenadores con Windows es la presencia de Winutils en el directorio bin de su instalación.

Y no es que lo diga yo, es que lo dice la documentación oficial de Apache Hadoop.

Una vez descargado el repositorio de GitHub buscamos la carpeta con la versión de las winutils para nuestra versión de Hadoop y la copiamos en una carpeta a la que llamaré hadoop-2.7.1

Ahora ya sólo nos falta establecer algunas Variables de Entorno para que todo funcione.

Variables de Entorno

En concreto vamos a crear tres variables de entorno…

  • SPARK_HOME. Ruta al directorio donde hemos descomprimido el paquete de Apache Spark.
  • HADOOP_HOME. Apunta al directorio donde hemos copiado la carpeta con la Winutils.
  • JAVA_HOME. Es el directorio donde se ha instalado el JRE de Java 8

…y a modificar una ya existente.

  • PATH. Aquí añadimos dos nuevas rutas.
  1. Directorio bin de la carpeta de Apache Spark
  2. Directorio bin de la carpeta de la JRE de Java.

Y este es el último paso de la instalación de Apache Spark. Ahora vamos a arrancarlo.

Iniciando Apache Spark

Todo lo que necesitamos para arrancar nuestra instalación de Apache Spark se encuentra dentro de la carpeta sbin de Apache Spark.

Lo malo es que cuando abras la carpeta verás que todos los archivos tienen la extensión .sh, es decir, que son Shell Scripts que sólo se ejecutan en sistema UNIX (macOS y Linux)

The launch scripts do not currently support Windows. To run a Spark cluster on Windows, start the master and workers by hand.

¿Quiere eso decir que todo lo que hemos hecho no ha valido para nada? ¡En absoluto! Sólo quiere decir que en Windows arrancamos Apache Spark de otra forma.

Abrir una Consola de Comandos pero antes aseguraos de ser administradores en vuestro equipo. Dirigíos a la carpeta bin de la instalación de Apache Spark y ejecutad el siguiente comando:

spark-class org.apache.spark.deploy.master.Master

Si todo ha ido bien veremos algo como esto

La URL subrayada en rojo es la dirección donde está a la escucha el cluster de Apache Spark, y la necesitamos para luego pasarlo como parámetro cuando arranquemos los workers de Apache Spark.

El texto subrayado en naranja nos dice que tenemos un interface gráfico para controlar lo que pasa en nuestro cluster.

Con este comando arrancamos un cluster de Apache Spark en nuestra máquina, ahora tenemos que añadir los workers al cluster.

Para ello abrimos otra consola de comando y nos volvemos a situar en el directorio bin de la instalación de Apache Spark para ejecutar este comando:

spark-class org.apache.spark.deploy.worker.Worker spark://10.101.144.130:7077

Donde el parámetro es la URL que nos indican en el arranque del cluster. Si todo va correctamente veremos esto en la consola

Interface UI de Apache Spark

Podemos controlar nuestro cluster mediante la web que se arranca junto con Apache Spark. Por defecto está a la escucha en el puerto 8080 y si apuntamos nuestro navegador web veremos algo como esto…

Enlaces

Publicado en Big Data