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-dir
docker 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:7077
main()
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