Spark-Master

Soporte

Nota: (creación de una images-docker-master usare como base-jupyter:latest 04d1d2b17e54 para usarla en proyectos de “Apache-Spark-Docker-Compose” ).

Spark-Master

Nota: (Lo primero crear la carpeta my-dockerfile donde guardamos nuestros Dockerfile, con nano creamos Spark-Master.Dockerfile y pegamos el testo correspondiente“siempre con mayúscula .Dockerfile).

  • In: root@juan-SATELLITE-C55-C-1JM:/# mkdir my-dockerfile
  • In: root@juan-SATELLITE-C55-C-1JM:/# cd my-dockerfile

Creamos un archivo dockerfile con nano :

  • In: root@juan-SATELLITE-C55-C-1JM:/my-dockerfile# nano Spark-Master.Dockerfile

 

Spark-Master.Dockerfile

# Cargamos la imagen base-jupyter:latest y Nombre del autor

FROM base-jupyter:latest

MAINTAINER Juan-Ma

# Deshabilitar el modo interactivo

ENV DEBIAN_FRONTEND=noninteractive

# Actualizamos repositorio

RUN apt update && apt install -y curl

CMD /bin/bash

# Lo descargamos

RUN curl -O https://archive.apache.org/dist/spark/spark-3.1.1/spark-3.1.1-bin-hadoop3.2.tgz && \

tar -xzvf spark-3.1.1-bin-hadoop3.2.tgz && \

mv spark-3.1.1-bin-hadoop3.2/ /opt/spark && \

rm spark-3.1.1-bin-hadoop3.2.tgz

# Establecer entorno de Spark

ENV SPARK_HOME=/opt/spark

ENV PATH=$SPARK_HOME/bin:$PATH

EXPOSE 4040 6066 7077 7078 8080 8081 8888

Nota: en la images que utilizo base-jupyter:latest 04d1d2b17e54 tenemos :

  • Python versión – 30.10.6
  • pip versión – 20-0-6
  • nano versión – 6.2
  • java versión – OpenJDK
  • Jupyterlab versión
  • Jupyter-Notebook versión

Nota: A continuación generamos una imagen (spark-master:latest) del Dockerfile creado con nano anteriormente “ Spark-Master.Dockerfile” .

Nota: Opciones ( –file , -f Nombre del Dockerfile) , ( –tag , -t Nombre y, opcionalmente, una etiqueta en formato ‘nombre:etiqueta’) .

Creamos la images spark-master:latest :

  • In root@juan-SATELLITE-C55-C-1JM:/my-dockerfile# docker build -f Spark-Master.Dockerfile . -t spark-master:latest

Listar las images :

  • In: root@juan-SATELLITE-C55-C-1JM:/my-dockerfile# docker images
  • Out: spark-master latest 2d41a537a8ec 8 minutes ago 1.08GB

Nota: (con la images spark-master:latest se cumple el objetivo de crear la images que nos ocupa y a continuación comprobare la funcionalidad creando un contenedor y probaremos el “Master de Apache-Spark” lo veremos a continuación).

Arrancamos el contenedor efimero con puertos:

  • In: root@juan-SATELLITE-C55-C-1JM:/#docker run -it –rm \

-p 0.0.0.0:4040:4040 \

-p 0.0.0.0:6066:6066 \

-p 0.0.0.0:7077:7077 \

-p 0.0.0.0:7078:7078 \

-p 0.0.0.0:8080:8080 \

-p 0.0.0.0:8888:8888 \

spark-master:latest

Con esto estamos dentro del contenedor:

  • In: root@b7699dc8ce75:/opt#

Listamos los contenedor en ejecución :

  • In: root@juan-SATELLITE-C55-C-1JM:/# docker ps
  • Out: b7699dc8ce75 spark-master:latest «/bin/sh -c /bin/bash» 6 minutes ago Up 6 minutes 0.0.0.0:4040->4040/tcp, 0.0.0.0:6066->6066/tcp, 0.0.0.0:7077-7078->7077-7078/tcp, 0.0.0.0:8080->8080/tcp, 0.0.0.0:8888->8888/tcp, 8081/tcp infallible_colden

Inspeccionar el contenedor :

  • In: root@juan-SATELLITE-C55-C-1JM:/#docker inspect b7699dc8ce75

          Out: «Networks»: {

             «bridge»: {

                   «Gateway»: «172.17.0.1»,

                   «IPAddress»: «172.17.0.2«,

 

Nota: Generamos el Master con la ip del host -h 172.17.0.2 generamos un Worker URL spark://172.17.0.2:7077 -interface-Wed-Spar-Master arrancamos interface-Wed-Spar-Master http://127.0.0.1:8080/ .

Arrancamos Master:

  • In: root@b7699dc8ce75:/opt# ./spark/sbin/start-master.sh -h 172.17.0.2
  • Out: starting org.apache.spark.deploy.master.Master, logging to /opt/spark/logs/spark–org.apache.spark.deploy.master.Master-1-b7699dc8ce75.out

Paramos el Master:

  • In: root@b7699dc8ce75:/opt# ./spark/sbin/stop-master.sh -h 172.17.0.2
  • Out: stopping org.apache.spark.deploy.master.Master

Ejecutamos el pyspark para visualizar PySparkShell:

  • In: root@b7699dc8ce75:/opt# pyspark

http://172.17.0.2:4040/jobs/

  • In: root@b7699dc8ce75:/opt# jupyter lab –allow-root –ip=0.0.0.0 –no-browser

Juyper-Notebook con http://127.0.0.1:8888/tree

Recopilando:

Puesta en escena de la images spark-master:latest, su funcionalidad y verificar Jupyter Notebook que es un entorno computacional interactivo basado en web.

Referencias: (Entorno-Moreluz)