
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像为集成 Java 11 运行时环境、Apache Spark 和 Apache Hadoop 的一站式大数据处理 Docker 镜像。旨在提供开箱即用的大数据开发、测试与运行环境,消除手动配置 Spark 和 Hadoop 集群的复杂性,支持基于 Java 11 的 Spark 应用开发、Hadoop 分布式文件系统(HDFS)操作及批处理/流处理任务执行。
4.1.1 从 Docker Hub 拉取
bashdocker pull docker.xuanyuan.run/[镜像仓库地址]/java11-spark-hadoop:latest # 替换为实际镜像仓库地址
4.1.2 本地构建
若需自定义版本,可基于 Dockerfile 构建:
bashgit clone [镜像源码仓库] cd java11-spark-hadoop docker build -t java11-spark-hadoop:custom .
4.2.1 启动交互式容器
bashdocker run -it --name spark-hadoop-local \ -p 4040:4040 # Spark 应用 UI 端口 \ -p 8080:8080 # Spark Master UI 端口 \ -p 50070:50070 # HDFS NameNode UI 端口 \ -v /host/data:/container/data # 挂载宿主机数据目录 \ java11-spark-hadoop:latest /bin/bash
4.2.2 验证环境
进入容器后,执行以下命令验证组件可用性:
bash# 验证 Java 版本 java -version # 输出 Java 11 版本信息 # 验证 Spark spark-shell # 启动 Spark Shell(Scala),进入交互式编程环境 # 验证 HDFS hdfs dfs -ls / # 列出 HDFS 根目录(默认空)
4.3.1 docker-compose.yml 配置示例
适用于启动包含 Spark Master/Worker 及 HDFS NameNode/DataNode 的小规模集群:
yamlversion: '3.8' services: # HDFS NameNode namenode: image: docker.xuanyuan.run/java11-spark-hadoop:latest container_name: hdfs-namenode ports: - "50070:50070" # NameNode UI - "9000:9000" # HDFS 服务端口 environment: - HDFS_ROLE=namenode - HDFS_NAMENODE_HOST=namenode volumes: - hdfs-namenode-data:/hadoop/dfs/name networks: - bigdata-net # HDFS DataNode datanode: image: docker.xuanyuan.run/java11-spark-hadoop:latest container_name: hdfs-datanode depends_on: - namenode environment: - HDFS_ROLE=datanode - HDFS_NAMENODE_HOST=namenode volumes: - hdfs-datanode-data:/hadoop/dfs/data networks: - bigdata-net # Spark Master spark-master: image: docker.xuanyuan.run/java11-spark-hadoop:latest container_name: spark-master ports: - "8080:8080" # Master UI - "7077:7077" # Master 服务端口 environment: - SPARK_ROLE=master - SPARK_MASTER_HOST=spark-master networks: - bigdata-net # Spark Worker spark-worker: image: docker.xuanyuan.run/java11-spark-hadoop:latest container_name: spark-worker depends_on: - spark-master environment: - SPARK_ROLE=worker - SPARK_MASTER_URL=spark://spark-master:7077 - SPARK_WORKER_CORES=2 # 分配 CPU 核心数 - SPARK_WORKER_MEMORY=2g # 分配内存 networks: - bigdata-net volumes: hdfs-namenode-data: hdfs-datanode-data: networks: bigdata-net: driver: bridge
4.3.2 启动集群
bashdocker-compose up -d # 后台启动所有服务 docker-compose logs -f # 查看集群启动日志
| 环境变量名 | 说明 | 默认值 |
|---|---|---|
JAVA_HOME | Java 11 安装路径 | /usr/lib/jvm/java-11-openjdk-amd64 |
SPARK_VERSION | Apache Spark 版本 | 3.3.4 |
HADOOP_VERSION | Apache Hadoop 版本 | 3.3.6 |
SPARK_ROLE | Spark 节点角色(master/worker) | local(本地模式) |
SPARK_MASTER_HOST | Spark Master 主机地址 | localhost |
SPARK_WORKER_CORES | Spark Worker 可用 CPU 核心数 | 1 |
SPARK_WORKER_MEMORY | Spark Worker 可用内存 | 1g |
HDFS_ROLE | HDFS 节点角色(namenode/datanode) | standalone(单节点) |
HDFS_NAMENODE_HOST | HDFS NameNode 主机地址 | localhost |
通过挂载宿主机配置文件覆盖默认配置:
bashdocker run -it \ -v /host/custom/spark-defaults.conf:/opt/spark/conf/spark-defaults.conf \ # Spark 配置 -v /host/custom/core-site.xml:/opt/hadoop/etc/hadoop/core-site.xml \ # Hadoop 核心配置 java11-spark-hadoop:latest
为避免容器重启导致 HDFS 数据丢失,需挂载数据卷:
bash# 宿主机创建 HDFS 数据目录 mkdir -p /host/hdfs/namenode /host/hdfs/datanode # 启动容器时挂载 docker run -it \ -v /host/hdfs/namenode:/hadoop/dfs/name \ # NameNode 元数据 -v /host/hdfs/datanode:/hadoop/dfs/data \ # DataNode 数据 java11-spark-hadoop:latest
若宿主机已占用 8080(Spark UI)、50070(HDFS UI)等端口,启动时需修改映射端口:
bashdocker run -it -p 8081:8080 -p 50071:50070 docker.xuanyuan.run/java11-spark-hadoop:latest
Spark/Hadoop 运行时需足够内存,建议宿主机内存 ≥ 4GB,或通过 SPARK_WORKER_MEMORY 限制资源占用。
首次启动 NameNode 需格式化文件系统:
bashdocker exec -it hdfs-namenode hdfs namenode -format
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务