我想在Spark集群上运行python应用程序,但我的应用程序不一定在主容器中。以下是我的compose yaml文件:
version: '3'
services:
spark-master:
image: bde2020/spark-master
deploy:
placement:
constraints:
[node.hostname == master]
environment:
- INIT_DAEMON_STEP=setup_spark
ports:
- '6080:8080'
- '6077:7077'
- '6040:4040'
spark-worker-1:
image: bde2020/spark-worker
depends_on:
- 'spark-master'
environment:
- 'SPARK_MASTER=spark://spark-master:7077'
ports:
- '6081:8081'
- '6041:4040'
当我在Swarm集群上创建一个堆栈并运行这两个容器,并使用以下SparkSession配置运行python应用程序时,我收到connection refused
错误。在
另一方面,当我用docker-compose up
以正常模式运行这些容器时,具有相同SparkSession配置的同一个python应用程序工作起来很有魅力。显然,这是不可取的,因为我想有扩大和缩小的可能性。因此,我正在寻找一种在Swarm模式下运行我的应用程序的方法。在
关于我的问题,奇怪的是我非常确定端口映射是正确的,因为在设置堆栈之后,我能够通过6080
端口连接到Spark UI,这是我映射到Spark:8080
的端口。在
另一点是,我已经通过相同的方法成功地连接到其他容器,如Cassandra和Kafka(将这些容器的服务端口映射到主机端口,并连接到主机上的设置端口),但是对于Spark container,同一条路径不起作用。在
目前没有回答
相关问题 更多 >
编程相关推荐