hashicorp/spark-nomad本镜像是基于 Apache Spark 2.1.1 构建的分布式计算框架发行版,额外集成了对 HashiCorp Nomad 调度器的支持。通过该镜像,用户可在 Nomad 容器编排平台中直接提交和运行 Spark 分布式作业,实现 Spark 计算任务与 Nomad 调度能力的无缝集成。
local:///opt/spark 路径作为 Spark 分发目录,简化作业依赖分发流程。使用本镜像前需先部署 Nomad 环境。对于开发测试场景,可通过以下命令启动 Nomad Agent(开发者模式,需本地已安装 Nomad 且支持 Docker):
bash# 以开发者模式启动 Nomad Agent(包含服务端和客户端,仅用于测试) sudo nomad agent -dev
在 Client Mode 下,Spark Driver 运行在提交作业的客户端(即本镜像容器内),Executor 由 Nomad 调度至集群节点运行。适用于需要本地监控 Driver 日志或交互式调试的场景。
使用命令:
bashdocker run --network=host -it hashicorp/spark-nomad ./opt/spark/bin/spark-submit \ --master nomad \ # 指定调度器为 Nomad --docker-image hashicorp/spark-nomad \ # 指定 Executor 使用的 Docker 镜像 --distribution local:///opt/spark \ # 指定 Spark 分发路径(镜像内置路径) --driver-memory 512m \ # Driver 内存大小 --executor-memory 512m \ # 每个 Executor 内存大小 --class org.apache.spark.examples.SparkPi \ # 作业主类(示例为 SparkPi) local:/opt/spark/examples/jars/spark-examples_2.11-2.1.1.jar \ # 作业 JAR 包路径(镜像内置示例) 10 # 作业参数(SparkPi 计算圆周率的迭代次数)
在 Cluster Mode 下,Spark Driver 由 Nomad 调度至集群节点运行,提交作业的客户端仅负责提交任务,不保留 Driver 进程。适用于生产环境中长时间运行的后台作业。
使用命令:
bashdocker run --network=host -it hashicorp/spark-nomad ./opt/spark/bin/spark-submit \ --master nomad \ # 指定调度器为 Nomad --deploy-mode cluster \ # 指定部署模式为集群模式 --docker-image hashicorp/spark-nomad \ # 指定 Driver 和 Executor 使用的 Docker 镜像 --distribution local:///opt/spark \ # 指定 Spark 分发路径(镜像内置路径) --driver-memory 512m \ # Driver 内存大小 --executor-memory 512m \ # 每个 Executor 内存大小 --class org.apache.spark.examples.SparkPi \ # 作业主类(示例为 SparkPi) local:/opt/spark/examples/jars/spark-examples_2.11-2.1.1.jar \ # 作业 JAR 包路径(镜像内置示例) 10 # 作业参数(SparkPi 计算圆周率的迭代次数)
| 参数 | 说明 |
|---|---|
--master nomad | 必选,指定 Spark 作业的主调度器为 Nomad。 |
--deploy-mode | 可选,指定部署模式:client(默认,客户端模式)或 cluster(集群模式)。 |
--docker-image | 必选,指定 Spark Executor(Cluster Mode 下还包括 Driver)使用的 Docker 镜像,需与当前镜像一致。 |
--distribution | 必选,指定 Spark 分发路径,固定为 local:///opt/spark(镜像内置 Spark 安装目录)。 |
--driver-memory | 可选,指定 Driver 内存大小,如 512m、1g。 |
--executor-memory | 可选,指定每个 Executor 内存大小,如 512m、1g。 |
--class | 必选,指定 Spark 作业主类(全类名)。 |
| 作业参数 | 可选,传递给 Spark 作业的自定义参数(如示例中的 10 为 SparkPi 的迭代次数)。 |

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务