Spark-Standalone-Cluster-Docker

PySpark

Nota: La necesidad de tener una computación en paralelo en sistema distribuido en my-portatil sin necesidad de uso de servidores físicos o virtuales para nuestros proyectos y laboratorios, usando en este caso PySpark, tenemos interesantes proyectos en GitHub usaremos uno de ellos en este post.

Spark-Standalone-Cluster-Docker

Nota: GitHub, es un servicio de alojamiento de Internet para el desarrollo de software y el control de versiones mediante Git . Proporciona el control de versiones distribuidas de Git más control de acceso , seguimiento de errores , solicitudes de funciones de software , gestión de tareas, se utiliza para proyectos de desarrollo de software de código abierto.

Nota: Necesitamos descargar las tres imágenes necesarias lo haremos con docker pull y verificaremos que se descargaron correctamente docker images .

Descargar las Imágenes necesarias:

  • In: root@juan-SATELLITE-C55-C-1JM:/# docker pull andreper/jupyterlab
  • In: root@juan-SATELLITE-C55-C-1JM:/# docker pull andreper/spark-master
  • In: root@juan-SATELLITE-C55-C-1JM:/# docker pull andreper/spark-worker

Comprobación de las imágenes:

  • In: root@juan-SATELLITE-C55-C-1JM:/# docker images
  • Out: andreper/jupyterlab latest ef8c884fe26f 3 days ago 2.32GB
  • Out: andreper/spark-worker latest 108b656cfcb4 3 days ago 1.48GB
  • Out: andreper/spark-master latest 32ec47add810 3 days ago 1.48GB

Nota: Continuación creamos una carpeta para alojar el proyecto en la cual descargamos el fichero compose.yml, el cual lo ejecutaremos con docker-compose up tardara cierto tiempo, de pende de my-portatil una vez terminado podemos detener el cluster con Ctrl+c .

Creamos la carpeta donde alojamos el proyecto:

  • In: root@juan-SATELLITE-C55-C-1JM:/# mkdir Apache-Spark-Standalone-Cluster-Docker
  • In: root@juan-SATELLITE-C55-C-1JM:/# cd Apache-Spark-Standalone-Cluster-Docker
  • In: root@juan-SATELLITE-C55-C-1JM:/Apache-Spark-Standalone-Cluster-Docker#

Descargamos compose.yml:

  • In: root@juan-SATELLITE-C55-C-1JM:/Apache-Spark-Standalone-Cluster-Docker# curl -LO https://raw.githubusercontent.com/cluster-apps-on-docker/spark-standalone-cluster-on-docker/master/docker-compose.yml
  • In: root@juan-SATELLITE-C55-C-1JM:/Apache-Spark-Standalone-Cluster-Docker# ls
  • Out: docker-compose.yml

Ejecutar el fichero docker-compose.yml:

  • In: root@juan-SATELLITE-C55-C-1JM:/Apache-Spark-Standalone-Cluster-Docker# docker-compose up

Nota: Escribir en el terminal Ctrl+c para detener el cluster.

Nota: Iniciamos de nuevo el cluster, tenemos una series de interfaz las cuales iniciaremos en el navegador

Iniciar las interfaz del Clúster

  • Spark Master localhost:8080 Spark Master node
  • Spark Worker 1 localhost:8081 Spark Worker node
  • Spark Worker 2 localhost:8082 Spark Worker node
  • Spark Driver localhost:4040 Interfaz-usuario-web de Spark Driver
  • JupyterLab localhost:8888 Interfaz de la IDE-Jupyter

Arrancamos el cluster:

  • In: root@juan-SATELLITE-C55-C-1JM:/Apache-Spark-Standalone-Cluster-Docker# docker-compose up

Nota: Iniciamos la Interfaz del Master pegando en nuestro navegador localhost:8080

Nota: Iniciamos la Interfaz del Worker 1 pegando en nuestro navegador localhost:8081

Nota: Iniciamos la Interfaz del Worker 2 pegando en nuestro navegador localhost:8082

Nota: Iniciamos la Interfaz de JupyterLab pegando en nuestro navegador localhost:8888.

 

Recapitulando:

Apache-Spark es framework de procesamiento distribuido paralelo en memoria más utilizado en el campo del análisis avanzado de Big Data. Al final tendremos un clúster de Apache-Spark completamente funcional generado con Docker y compuesto con un Nodo-Master , dos Nodos-Workerde y una interfaz de JupyterLab, en la cual tenemos nuestra API Apache Spark Python (PySpark) y un sistema de archivos distribuido Hadoop simulado (HDFS).

 

  • Referencias: (EntornoMoreluz)
  • Referencias: github