Servicios-Swarm-Spark

Swarm

Nota: para terminar con este grupo básico de post pasare a una puesta totalmente funcional del Modo-Swarm con Apache-Spark, con un Nodo-Master con 1-replica y un Nodo-Wolker con 2-replicas (es recomendable establecer etiquetas para los Nodos como Buenas-Practicas).

-. Empecemos por ver los Nodos del Host y Server, Crearemos Network-Overlay confirmaremos su creación y estableceremos las etiquetas que deseamos poner a los Nodos.

Ver información sobre los nodos

  1. In: root@juan-Aspire-ES1-512:/# docker node ls
  2. Out: ltw3bagsb0y5u2mr54hchsap6 * juan-Aspire-ES1-512 Ready Active Leader 20.10.7
  3. Out: 9vt7efn1eiib2s9z1mqk7xf5f serve–hp8100 Down Active 20.10.7

Crear Network-Overlay

  1. In: root@juan-Aspire-ES1-512:/# docker network create –driver overlay spark
  2. Out: a9qg7s66q3kgkkxof8by2un5w

Listar Networks

  1. In: root@juan-Aspire-ES1-512:/# docker network ls
  2. Out: a9qg7s66q3kg spark overlay swarm

Establecer etiquetas (nodo sparkmaster) (nodos sparkworker)

  1. In: root@juan-Aspire-ES1-512:/# docker node update –label-add type=sparkmaster juan-Aspire-ES1-512
  2. Out: juan-Aspire-ES1-512
  3. In: root@juan-Aspire-ES1-512:/# docker node update –label-add type=sparkworker serve–hp8100
  4. Out: serve –hp8100

 

Nota: A continuacion instalo el Master y Worker y comprobamos que están totalmente funcional la imagen que utilizo (birgerk/apache-spark) se instala automáticamente del repositorio de Docker.

Host principal Master

  1. In: root@juan-Aspire-ES1-512:/# docker service create \

–hostname master \

–container-label sparkmaster \

–network spark \

–constraint node.labels.type==sparkmaster \

–publish 8080:8080 \

–publish 7077:7077 \

–publish 6066:6066 \

–publish 50070:50070 \

–replicas 1 \

–limit-memory 1g \

–name spark-master \

birgerk/apache-spark

  1. Out: c51u6dmtavsq5j2kg7udvz5zh
  2. Out: overall progress: 1 out of 1 tasks
  3. Out: 1/1: running [==================================================>]
  4. Out: verify: Service converged

Listado de Servicios en este momento (sparkmaster-juan-Aspire-ES1-512)

  1. In: root@juan-Aspire-ES1-512:/# docker service ls

c51u6dmtavsq spark-master replicated 1/1 birgerk/apache-spark:latest *:6066->6066/tcp, *:7077->7077/tcp, *:8080->8080/tcp, *:50070→50070/tcp

Contenedor que acabamos de generar (7a736827cb26 )

  1. In: root@juan-Aspire-ES1-512:/# docker ps

7a736827cb26 birgerk/apache-spark:latest «/sbin/my_init» 6 minutes ago Up 6 minutes 4040/tcp, 6066/tcp, 7077-7078/tcp, 8080-8081/tcp, 8888/tcp spark-master.1.y3nvzbtsditk315tklum8hmpo

Inspecionar el servicio recién creado (c51u6dmtavsq)

  1. In: root@juan-Aspire-ES1-512:/# docker service inspect c51u6dmtavsq

«NetworkID»: «jmgzz5dfcwdh6tg6epm1wdm49»,

«Addr»: «10.0.0.6/24»

«NetworkID»: «a9qg7s66q3kgkkxof8by2un5w»,

«Addr»: «10.0.1.2/24»

Nota: He expuesto una serie de puertos entre ellos (–publish 8080:8080) el cual nos permite tener acceso en nuestro navegador ( http://127.0.0.1:8080/) a la URL:Spark//10.0.1.3 que es la de Spark-Master.

Implementa el servicio Spark para los nodos Worker

  1. In: root@juan-Aspire-ES1-512:/# docker service create \

–constraint node.labels.type==sparkworker \

–network spark \

–publish 8081:8081 \

–replicas 2 \

–limit-memory 512m \

–env «SPARK_ROLE=slave» \

–env «SPARK_MASTER=10.0.1.3» \

–name spark-worker \

birgerk/apache-spark

  1. Out: wq8g042s381xzhlhkc3z392q4
  2. Out: overall progress: 2 out of 2 tasks
  3. Out: 1/2: running [==================================================>]
  4. Out: 2/2: running [==================================================>]
  5. Out: verify: Service converged

Listado de Servicios en este momento (sparkmaster-sparkworkerjuan-Aspire-ES1-512)

  1. In: root@juan-Aspire-ES1-512:/# docker service ls

Servicio spark-master

Out: c51u6dmtavsq spark-master replicated 1/1 birgerk/apache-spark:latest *:6066->6066/tcp, *:7077->7077/tcp, *:8080->8080/tcp, *:50070→50070/tcp

Servicio spark-worker

Out: wq8g042s381x spark-worker replicated 2/2 birgerk/apache-spark:latest *:8081→8081/tcp

Listado de contenedores desde (sparkworker-root@serve–hp8100)

  1. In: root@serve–hp8100:/# docker ps

Contenedor spark-worker.2

Out: 2e230b039b62 birgerk/apache-spark:latest «/sbin/my_init» 10 minutes ago Up 10 minutes 4040/tcp, 6066/tcp, 7077-7078/tcp, 8080-8081/tcp, 8888/tcp spark-worker.2.tg0qsxxy077g4v9b6l2k6zh8y

Contenedor spark-worker.1

Out: bcf1b07c95fb birgerk/apache-spark:latest «/sbin/my_init» 10 minutes ago Up 10 minutes 4040/tcp, 6066/tcp, 7077-7078/tcp, 8080-8081/tcp, 8888/tcp spark-worker.1.lhdqe922qr2yp18qzhi8alojn

Service ps (c51u6dmtavsq)

  1. In: root@juan-Aspire-ES1-512:/# docker service ps c51u6dmtavsq

Tarea del Servicio (Una replica Spark-Master)

Out: y3nvzbtsditk spark-master.1 birgerk/apache-spark:latest juan-Aspire-ES1-512 Running Running 43 minutes ago

Service ps (wq8g042s381x)

  1. In: root@juan-Aspire-ES1-512:/# docker service ps wq8g042s381x

Tarea del Servicio (Dos replica Spark-Worker)

  • Out: lhdqe922qr2y spark-worker.1 birgerk/apache-spark:latest serve–hp8100 Running Running 25 minutes ago
  • Out: tg0qsxxy077g spark-worker.2 birgerk/apache-spark:latest serve–hp8100 Running Running 25 minutes ago

Nota: en esta ultima imagen tenemos los Worker con sus (ID) , (Address) , (satado) , etc.

Recopilando:

En este laboratorio tenemos dos maquinas. Un Host que nos proporciona el Docker-Cliente (Cli) y el Nodo-Aministrador y un Servidor que tenemos un Nodo-Worker (llamamos nodo-master o nodo-Worker cuando realmente no existen por que son creado por los Servicios a través de las Tareas), los Servicos-Swarm nos proporcionan un marco de configuración por ejemplo un contenedor-Master y dos contenedores-Worker. En producción tendríamos uno o mas ordenadores con Swarm-Cliente-Cli) y una serie de Servidores (físicos o Virtuales) digamos cinco Nodos-Master (aministradores) y por decir algo unos cien Nodos-Worker con esto tendriamos (tolerancia a fallos) , (equilibrio de cargas) y (alto nivel de procesamiento). Todo esto es de un nivel de Grandes-Corporaciones.

Referencias : (Entorno-Moreluz)