专属
文档
插件
助手
邀请
顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像

交易
充值流量我的订单

文档

工具

功能
提交工单页面收录

帮助
轩辕镜像免费版

其他
关于我们网站地图
热门搜索:
spark

keldaio/spark

自动构建
keldaio

用于Kelda (kelda.io)的Spark容器,可在任何云提供商上轻松启动和管理Apache Spark集群,支持通过Kelda蓝图快速部署、运行Spark作业及访问Spark UI。

下载次数: 0状态:自动构建维护者:keldaio仓库类型:镜像最近更新:8 年前
让 AI 帮你使用轩辕镜像? · 展开查看说明

如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这句话即可:

请先完整阅读并严格遵守以下文档中的全部规则与要求:

https://xuanyuan.cloud/agents.md

在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

轩辕镜像,不浪费每一次拉取。点击查看
中文简介
标签列表
镜像标签列表与下载命令
轩辕镜像,不浪费每一次拉取。点击查看

使用Kelda.js启动和管理Spark集群

Kelda可简化在任何云提供商上启动和管理Apache Spark集群的过程。本仓库包含一个Kelda蓝图,用于描述如何启动Spark集群。安装Kelda后,只需运行以下命令即可在云提供商上启动一组机器并配置、启动Spark:

console
$ kelda run ./sparkRun.js

下文将详细介绍Kelda的安装和Spark集群的配置方法。

下载本仓库中的蓝图

首先克隆本仓库并安装必要的依赖:

console
$ git clone https://github.com/kelda/spark.git
$ cd spark
$ npm install .

启动Apache Spark集群

要启动Spark集群,首先启动Kelda守护进程(如果尚未运行):

console
$ kelda daemon

守护进程是一个长期运行的进程,因此后续命令需要在新窗口中运行(要了解更多关于守护进程的信息,请参考Kelda文档)。

sparkRun.js中的Spark蓝图将使用默认基础架构启动Spark。如果尚未创建默认基础架构,请执行:

console
$ kelda init

有关创建Kelda基础架构的更多信息,请参考Kelda文档。

接下来,运行Spark蓝图:

console
$ kelda run ./sparkRun.js

这将使用蓝图sparkRun.js启动Spark集群。VM启动、Kelda配置网络和Docker容器初始化需要一些时间。kelda show命令可提供部署中VM和容器的有用信息。以下输出显示主VM的公网IP为54.219.158.97:

$ kelda show
MACHINE         ROLE      PROVIDER    REGION       SIZE         PUBLIC IP        STATUS
i-06a6afa426    Master    Amazon      us-west-1    m3.xlarge    54.219.158.97    connected
i-0f3add6b27    Worker    Amazon      us-west-1    m3.xlarge    54.67.108.98     connected
i-08f8c31070    Worker    Amazon      us-west-1    m3.xlarge    52.53.157.29     connected
i-027e5d72ed    Worker    Amazon      us-west-1    m3.xlarge    54.183.210.94    connected

当STATUS为connected时,表示相应的VM已完全启动并开始与Kelda通信。

机器处于connected状态后,可使用kelda ssh <MACHINE_ID>命令SSH登录到VM(例如,对于上述机器,使用kelda ssh i-06a登录到主节点)。

要列出集群中所有活动容器,再次执行kelda show并查看输出末尾的CONTAINER部分。例如:

$ kelda show
...
CONTAINER       MACHINE         COMMAND HOSTNAME        STATUS     CREATED              PUBLIC IP
0b8eb391d8ce    i-027e5d72ed    ...     spark-master    running    About an hour ago    54.183.210.94:8080
62567da92a76    i-08f8c31070    ...     spark-worker    running    About an hour ago    52.53.157.29:8081
9f7eee19a330    i-0f3add6b27    ...     spark-driver    running    About an hour ago    54.67.108.98:[4040,18080]
b8010a0970b3    i-0f3add6b27    ...     spark-worker2   running    About an hour ago    54.67.108.98:8081
...

蓝图会启动多个容器。用户将交互的容器是主机名为spark-driver的容器,用于启动Spark作业(下一节将详细描述如何启动作业)。蓝图还会创建主机名为spark-master的容器(运行Spark独立调度器主节点,负责调度Spark应用)和多个Spark工作节点容器(为Spark作业运行任务)。

运行作业

用户可使用spark-driver容器运行Spark作业。该容器配置为自动将作业提交到独立主节点进行调度,且其网络配置允许公网访问Spark UI。要登录到Spark驱动节点,只需使用kelda ssh命令。例如:

console
$ kelda ssh spark-driver

容器的路径中包含所有Spark命令。SSH登录容器后,运行spark-shell启动Spark Shell:

console
$ spark-shell
Spark context Web UI available at http://54.67.108.98:4040
Spark context available as 'sc' (master = spark://spark-master:7077, app id = app-20171107203134-0001).
Spark session available as 'spark'.
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 2.2.0
      /_/

Using Scala version 2.11.8 (OpenJDK 64-Bit Server VM, Java 1.8.0_131)
Type in expressions to have them evaluated.
Type :help for more information.

scala>

运行计算Pi的示例作业

要计算Pi,可在Spark驱动节点上使用run-example命令。可如上所述SSH登录容器,或通过在kelda ssh中传递命令来运行作业:

console
$ kelda ssh spark-driver run-example SparkPi

此命令将启动Spark作业,作业输出将打印到命令行。作业完成后,将输出类似以下内容:

console
Pi is roughly 3.13959569797849

使用Spark UI

Kelda Spark蓝图开放了访问各种Spark UI所需的所有端口:

  • 应用程序(每个作业)UI:特定应用程序的UI在spark-driver机器的4040端口上可用。这通常是调试特定工作负载中任务性能最有用的UI。启动Spark Shell时会打印应用程序UI的完整URL(如上述示例中的UI),也可在kelda show容器输出的PUBLIC IP列中查看。
  • 历史服务器UI:有时需要获取已完成作业或应用程序的信息(此时应用程序UI已关闭)。此UI在spark-driver的***端口上运行。
  • Spark独立主节点UI:当前Kelda Spark蓝图使用Spark的独立调度器在工作节点机器上调度应用程序。独立调度器在spark-master机器上运行,并在该机器的8080端口上提供UI。与其他UI一样,此UI的完整地址可在kelda show容器输出的PUBLIC IP列中查看。此UI显示Spark集群中的所有工作节点。

有关各种Spark UI的更多信息,请参考Spark文档。

从S3读取输入数据

Spark作业通常需要从S3读取输入数据。要从S3读取数据,需指定一组AWS访问密钥。有多种设置这些密钥的方法;一种方法是使用spark.hadoop.fs.s3a.access.key和spark.hadoop.fs.s3a.secret.key Spark配置属性。例如,使用这些属性启动Spark Shell:

console
$ spark-shell --conf spark.hadoop.fs.s3a.access.key=<aws access key id> --conf spark.hadoop.fs.s3a.secret.key=<aws secret access key>

然后可使用S3 URL从S3读取数据;例如,在Shell中:

scala
scala> val s3Rdd = sc.textFile("s3a://my-bucket-name/my-file-name.txt")

用户从S3读取数据时常见的一个问题是Hadoop有三种与S3交互的文件系统:s3文件系统、s3a文件系统和s3n文件系统。文件URL的第一部分指示使用哪个文件系统;上述textFile的参数以s3a://开头,表示使用s3a文件系统。每个文件系统需要设置不同的配置属性来指定AWS访问密钥。上述示例中的配置属性是针对s3a的,因此请确保使用以s3a://开头的文件路径(如果倾向于使用s3或s3n文件系统,则需要使用与上述s3a特定属性不同的配置属性)。

设置带HDFS的Spark集群

通常,Spark工作负载依赖于将中间数据写入HDFS。蓝图sparkWithHDFSExample.js展示了如何将Spark蓝图与https://github.com/kelda/hadoop%E4%B8%80%E8%B5%B7%E4%BD%BF%E7%94%A8%EF%BC%8C%E4%BB%A5%E9%83%A8%E7%BD%B2Spark%E5%92%8CHDFS%E5%B9%B6%E5%B0%86%E5%AE%83%E4%BB%AC%E8%BF%9E%E6%8E%A5%E8%B5%B7%E6%9D%A5%E3%80%82%E8%AF%A5%E8%93%9D%E5%9B%BE%E4%BC%9A%E5%B0%86Spark%E9%85%8D%E7%BD%AE%E4%B8%BA%E4%BD%BF%E7%94%A8HDFS%E4%BD%9C%E4%B8%BA%E9%BB%98%E8%AE%A4%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%EF%BC%8C%E5%9B%A0%E6%AD%A4%E7%B1%BB%E4%BC%BC%E4%BB%A5%E4%B8%8B%E7%9A%84Spark%E6%96%87%E4%BB%B6%E8%B0%83%E7%94%A8%EF%BC%9A

scala
myRdd.saveAsTextFile("myFilename");

将把myRdd中的数据保存到HDFS中名为myFilename的新文件中。

更多信息

有关Kelda.js的更多信息,请参见Kelda。

FAQ

能否运行多个并发作业?

当前此蓝图仅支持一次运行一个作业,因为作业启动时,Spark独立调度器会将集群中的所有资源分配给该作业。

能否从自己的计算机而非spark-driver容器提交作业?

不能。Kelda设置了网络防火墙,默认拒绝所有与Kelda启动的机器之间的连接。Spark蓝图spark.js开放了Spark运行所需的必要端口,例如允许spark-driver机器与调度器和工作节点机器通信。Kelda仅允许来自spark-driver机器的这些连接(作为安全预防措施),因此您的计算机无法与Spark集群中的机器通信。

更多相关 Docker 镜像与资源

以下是 keldaio/spark 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:

  • library/spark Docker 镜像说明(Apache Spark 大数据处理引擎,官方标准版本)
  • apache/spark Docker 镜像说明(Apache Spark 大数据处理引擎,Apache 官方版本)
  • bitnamicharts/spark Docker 镜像说明(Bitnami Apache Spark 图表栈,适合大数据批处理与分析)
  • library/flink Docker 镜像说明(Apache Flink,流处理和批处理大数据引擎)
  • bitnami/spark Docker 镜像说明(Apache Spark 大数据处理引擎,Bitnami 企业级配置)

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 spark 镜像标签

docker pull docker.xuanyuan.run/keldaio/spark:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull keldaio/spark:<标签>

更多 spark 镜像推荐

spark logo

library/spark

Docker 官方镜像
Apache Spark 是一款专为大规模数据处理打造的统一分析引擎,它集成了批处理、流处理、机器学习、图计算等多种数据处理能力,通过基于内存的计算模型显著提升数据处理速度,具备高效、易用且可扩展的特性,能为企业和开发者提供一站式的大数据分析解决方案,支持从数据提取、清洗、转换到深度分析与应用部署的全流程,满足各类复杂数据场景下的处理需求,助力实现数据驱动的高效决策与业务创新。
120 次收藏100万+ 次下载
23 天前更新
apache/spark logo

apache/spark

Apache 软件基金会镜像
Apache Spark是由Apache软件基金会开发的开源分布式计算系统,专为大数据处理设计,支持批处理、流处理、机器学习和图计算等多种数据处理模式,通过基于内存的计算引擎显著提升处理速度,具备高效、易用且可扩展的特性,广泛应用于数据科学与大数据分析领域,为用户提供快速、灵活的大数据处理解决方案。
98 次收藏1000万+ 次下载
24 天前更新
bitnamicharts/spark logo

bitnamicharts/spark

bitnamicharts
Bitnami Apache Spark的Helm Chart,用于在Kubernetes集群上部署高性能大规模计算引擎,支持数据处理、机器学习和实时流处理,提供Java、Python、Scala和R的API。
50万+ 次下载
10 个月前更新
rancher/spark logo

rancher/spark

rancher
暂无描述
1 次收藏4.7千+ 次下载
10 年前更新
intel/spark logo

intel/spark

intel
暂无描述
3千+ 次下载
3 年前更新
localstack/spark logo

localstack/spark

localstack
暂无描述
557 次下载
4 年前更新

查看更多 spark 相关镜像

轩辕镜像配置手册

按平台快速找到配置文档

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

iKuai 镜像加速

宝塔面板

一键配置镜像源

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

一键安装

一键安装 Docker

Linux Docker 一键安装

需要其他帮助?请查看我们的 常见问题 Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

免费版与专业版区别

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

账号

失败是否计费

manifest · blob · 计费

申请开发票(企业 / 个人)

企业 · 个人 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
keldaio/spark
教程轩辕镜像功能与使用教程
价格查看流量套餐与价格
热门查看热门 Docker 镜像推荐
博客Docker 镜像公告与技术博客
官方公众号:源码跳动|官方技术交流群:831623681
官方公众号:源码跳动|官方技术交流群:|问题咨询请:提交工单
商务合作:点击复制邮箱
©2024-2026 源码跳动
商务合作:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.