docker pull spark
Za pomocą tej sieci program driver łączył się będzie z klastrem Sparka
docker network create -d bridge --subnet=172.22.0.0/16 spark-network
Utwórz plik docker-compose.yml. Definiuje on trzy węzły obliczeniowe
Interfejs użytkownika węzła master będzie dostępny pod adresem http://localhost:9090/
services:
spark-master:
image: spark
command: /opt/spark/bin/spark-class org.apache.spark.deploy.master.Master
networks:
spark-network:
ipv4_address: 172.22.0.2
ports:
- "9090:8080"
- "7077:7077"
spark-worker-1:
image: spark
command: /opt/spark/bin/spark-class org.apache.spark.deploy.worker.Worker spark://spark-master:7077
depends_on:
- spark-master
networks:
spark-network:
ipv4_address: 172.22.0.3
environment:
SPARK_MODE: worker
SPARK_WORKER_CORES: 2
#SPARK_WORKER_MEMORY: 4g
SPARK_MASTER_URL: spark://spark-master:7077
spark-worker-2:
image: spark
command: /opt/spark/bin/spark-class org.apache.spark.deploy.worker.Worker spark://spark-master:7077
depends_on:
- spark-master
networks:
spark-network:
ipv4_address: 172.22.0.4
environment:
SPARK_MODE: worker
SPARK_WORKER_CORES: 2
#SPARK_WORKER_MEMORY: 4g
SPARK_MASTER_URL: spark://spark-master:7077
networks:
spark-network:
external: true
ipam:
config:
- subnet: 172.22.0.0/16
W tym samym katalogu wydaj komendę
docker-compose up
[2023/24] Obraz apache/spark zawiera kod:
Alternatywne kompilacje można pobrać ze strony https://hub.docker.com/_/spark. Dostępne są wersje dla JDK 17
Przejdź do katalogu, w którym jest zapisany plik JAR.
/opt/spark/work-dirdocker run -it --rm -v ".:/opt/spark/work-dir" -p 4040:4040 --network spark-network spark /bin/bash
Parametrami komendy spark-submit są:
spark:172.22.0.2:7077main() która ma zostać uruchomiona/opt/spark/bin/spark-submit --driver-memory 4g --executor-memory 4g --class org.example.Main --master spark://172.22.0.2:7077 pi_application.jar