Я использую автономный искровой кластер с docker-compose
У меня есть главный и один рабочий контейнеры, работающие в одной сети (10.5.0.0/16)
Я развернул кластер на виртуальной машине Ubuntu, когда я запускаю скрипт python на той же виртуальной машине, все работает нормально, но когда я хочу использовать кластер с другого хоста, кажется, что я не могу добраться до рабочего контейнера
Мне нужен способ, чтобы после обращения к мастеру (который работает отлично) мой процесс драйвера мог добраться до рабочего
version: "3.7"
services:
spark-master:
image: spark-master:2.3.1
container_name: spark-master
hostname: spark-master
ports:
- "0.0.0.0:80:8080"
- "0.0.0.0:7077:7077"
networks:
spark-network:
ipv4_address: 10.5.0.2
volumes:
- /mnt/spark-apps:/opt/spark-apps
- /mnt/spark-data:/opt/spark-data
environment:
- "SPARK_LOCAL_IP=spark-master"
spark-worker-1:
image: spark-worker:2.3.1
container_name: spark-worker-1
hostname: spark-worker-1
depends_on:
- spark-master
ports:
- "0.0.0.0:8081:8081"
env_file: ./env/spark-worker.sh
environment:
- "SPARK_LOCAL_IP=spark-worker-1"
networks:
spark-network:
ipv4_address: 10.5.0.3
volumes:
- /mnt/spark-apps:/opt/spark-apps
- /mnt/spark-data:/opt/spark-data
networks:
spark-network:
driver: bridge
ipam:
driver: default
config:
- subnet: 10.5.0.0/16
в основном я ожидаю, что после обращения к мастеру процесс драйвера должен достигнуть рабочего контейнера 10.5.0.3:8081, мне нужно, чтобы он был открыт для публичного показа, и мастер спарк знает, какой ip предоставить процессу драйвера