Skip to content

Easy script to start spark master node with 3 workers in docker

License

Notifications You must be signed in to change notification settings

Napuh/easy_spark

 
 

Repository files navigation

Easy spark

Contenedores docker de Spark basados en debian:buster, desarrollados originalmente por Gettyimages, esta versión está actualizada a Python 3.7 y Spark 3.1.2. Pensado para desplegar de forma local y sencilla.

Importante

Spark y PySpark son muy sensibles a las versiones de las librerías que se usan. Para que funcione adecuadamente, es necesario Python 3.7, y la versión 3.1.2 de pyspark.

Para crear un entorno de python rápidamente con conda:

conda create -y -n pyspark python=3.7
conda activate pyspark
pip install -r requirements.txt

Despliegue en docker local

Primero, instalar docker-compose, si no viene por defecto en tu instalación de docker:

sudo apt install docker-compose

Después, arrancar todos los servicios con:

docker-compose up

Para arrancar los servicios en background:

docker-compose up -d

Para pararlo todo, CTRL+C, o:

docker-compose down

Interfaz de Spark master

Podemos ver la interfaz del nodo maestro de spark en http://localhost:8080.

Deberían aparecer tres workers con state ALIVE.

Lanzar tareas de ejemplo en el cluster de spark creado

Entramos en el contenedor con bash:

docker exec -it docker-spark_master_1 /bin/bash

Una vez dentro, para lanzar un trabajo de ejemplo:

bin/run-example SparkPi 10

Mientras se completa, podremos ver en la interfaz web del nodo maestro la aplicación en curso. Cuando finalice, aparecerá en la lista de aplicaciones completadas.

Conexión con PySpark

En pyspark_example.py se encuentra un ejemplo de cómo conectarse al cluster y crear un dataframe. Con el entorno de python 3.7 activado, ejecutar:

python pyspark_example.py

License

MIT

About

Easy script to start spark master node with 3 workers in docker

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dockerfile 81.2%
  • Python 18.8%