火花提交到 docker 容器

spark-submit to a docker container

我使用这个 repository 和相关文档创建了一个 Spark 集群。

现在我正尝试通过 spark-submit 在 Spark Master 的 Docker 容器中执行一个作业,所以我使用的命令类似于:

/path/bin/spark-submit --class uk.ac.ncl.NGS_SparkGATK.Pipeline \
--master spark://spark-master:7077 NGS-SparkGATK.jar HelloWorld

现在的问题是我收到 Failed to connect to master spark-master:7077

我尝试了任意组合:容器 IP、容器 ID、容器名称、本地主机、0.0.0.0、127.0.0.1,但我总是收到相同的错误。

而如果我使用 --master local[*] 应用程序工作。

我错过了什么?

问题是使用 spark://spark-master:7077

的主机名

所以 Spark Master 内部是这样的:

SPARK_MASTER_HOST=`hostname`

/path/bin/spark-submit --class uk.ac.ncl.NGS_SparkGATK.Pipeline \
--master spark://$SPARK_MASTER_HOST:7077 NGS-SparkGATK.jar HelloWorld