Skip to content

Spark para Docker Swarm e outros testes (Em breve).

Notifications You must be signed in to change notification settings

Jarzamendia/spark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spark

CircleCI

Introdução

Spark para Docker Swarm. Em breve irei criar algumas aplicações para teste. Meu objetivo principal é fazer testes de performance com várias configurações e topologias.

Imagens

Master Worker

Dockerfiles

Base Worker Master

Versões

Estão disponíveis as versões spark2.4.7-hadoop2.7 e spark3.0.1-hadoop3.2. É importante manter as versões sincronizadas entre executores, como por exemplo o Jupyter Lab.

Arquivos de implantação

Outros exemplos no diretório docker, incluindo modo HA com Zookeper.

version: "3.7"

services:

  spark-master:
    image: jarzamendia/spark-master:spark2.4.7-hadoop2.7
    ports:
      - "8080:8080"
      - "7077:7077"
    networks:
      spark-network:
    environment:
      - INIT_DAEMON_STEP=setup_spark
      - SPARK_PUBLIC_DNS=spark.local
      - SPARK_MASTER_HOST=spark-master
    deploy:
      mode: global
      placement:
        constraints:
          - "node.role==manager"

  spark-worker:
    image: jarzamendia/spark-worker:spark2.4.7-hadoop2.7
    hostname: "{{.Node.Hostname}}"
    ports:
      - "8081:8081"
    environment:
      - SPARK_MASTER=spark://spark-master:7077
      - SPARK_WORKER_CORES=1
      - SPARK_WORKER_MEMORY=1G
      - SPARK_DRIVER_MEMORY=128m
      - SPARK_EXECUTOR_MEMORY=256m
      - SPARK_PUBLIC_DNS={{.Node.Hostname}}-worker.spark.local
      - SPARK_DAEMON_JAVA_OPTS=-Dspark.metrics.conf=/opt/spark/conf/metrics.properties 
    deploy:
      mode: global
      placement:
        constraints:
          - "node.role==worker"
    networks: 
      spark-network:

networks:
  spark-network:

Exemplos

Em todos os containers do Spark, na pasta /opt/spark/examples temos exemplos de várias linguagens disponíveis. Podemos por executar um deles usando o Spark-Submit. Para facilitar os testes, acesse o container de um Master e execute o seguinte comando: 

spark-submit --master spark://spark-master:7077 /opt/spark/examples/src/main/python/pi.py 1000

Tente alterar o valor no final do script e o número de Workers disponíveis.

About

Spark para Docker Swarm e outros testes (Em breve).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published