
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
!hadoop logo
Dockerfile链接Apache™ Hadoop®项目开发用于可靠、可扩展、分布式计算的开源软件。
Apache Hadoop软件库是一个框架,允许使用简单的编程模型在计算机集群上分布式处理大型数据集。它设计为从单台服务器扩展到数千台机器,每台机器提供本地计算和存储。该库并非依赖硬件来提供高可用性,而是在应用层设计为检测和处理故障,从而在可能容易发生故障的计算机集群之上提供高可用服务。
[***]
Docker是一个开放平台,供开发人员和系统管理员构建、交付和运行分布式应用程序。它由Docker Engine(一个便携、轻量级的运行时和打包工具)和Docker Hub(一个用于共享应用程序和自动化工作流的云服务)组成,使应用程序能够快速从组件组装,并消除开发、QA和生产环境之间的摩擦。因此,IT可以更快地交付,并在笔记本电脑、数据中心VM和任何云上运行相同的应用程序(无需修改)。
[***]
Docker镜像是容器的基础。镜像是只读的,而容器是可写的。只有容器可以由操作系统执行。
[***]
此命令在后台启动HDFS NameNode容器,并开始跟踪其日志。
bashdocker run -d --name hdfs-namenode \ -h hdfs-namenode -p 50070:50070 \ gelog/hadoop hdfs namenode && \ docker logs -f hdfs-namenode
如果日志中一切正常(无错误),按CTRL + C将控制台与日志分离。
此命令在后台启动单独的HDFS DataNode容器,将其与NameNode容器链接,并开始跟踪其日志。
bashdocker run -d --name hdfs-datanode1 \ -h hdfs-datanode1 -p 50075:50075 \ --link=hdfs-namenode:hdfs-namenode \ gelog/hadoop hdfs datanode && \ docker logs -f hdfs-datanode1
如果日志中一切正常(无错误),按CTRL + C将控制台与日志分离。
此命令在后台启动单独的HDFS Secondary NameNode容器,将其与NameNode容器链接,并开始跟踪其日志。
bashdocker run -d --name hdfs-secondarynamenode \ -h hdfs-secondarynamenode -p 50090:50090 \ --link=hdfs-namenode:hdfs-namenode \ gelog/hadoop hdfs secondarynamenode && \ docker logs -f hdfs-secondarynamenode
如果日志中一切正常(无错误),按CTRL + C将控制台与日志分离。
此命令在后台启动YARN系统容器。它与NameNode、DataNode链接。start-yarn.sh脚本启动YARN Node Manager和YARN Resource Manager。
bashdocker run -d --name yarn \ -h yarn \ -p 8088:8088 \ -p 8042:8042 \ --link=hdfs-namenode:hdfs-namenode \ --link=hdfs-datanode1:hdfs-datanode1 \ -v $HOME/data/hadoop/hdfs:/data \ gelog/hadoop start-yarn.sh && \ docker logs -f yarn
在HDFS中放入一些数据
bashdocker run --rm \ --link=hdfs-namenode:hdfs-namenode \ --link=hdfs-datanode1:hdfs-datanode1 \ gelog/hadoop \ hadoop fs -put /usr/local/hadoop/README.txt /README.txt
启动WordCount示例
此命令运行WordCount示例。
bashdocker run --rm \ --link yarn:yarn \ --link=hdfs-namenode:hdfs-namenode \ gelog/hadoop \ hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount /README.txt /README.result
如果README.result已存在,需要在运行MapReduce作业前删除它。
bashdocker run --rm --link=hdfs-namenode:hdfs-namenode \ --link=hdfs-datanode1:hdfs-datanode1 \ gelog/hadoop \ hadoop fs -rm -R -f /README.result
查看结果
bashdocker run --rm --link=hdfs-namenode:hdfs-namenode \ --link=hdfs-datanode1:hdfs-datanode1 \ gelog/hadoop \ hadoop fs -cat /README.result/*
每个组件都提供自己的Web UI。在浏览器中打开以下URL之一,其中dockerhost是运行Docker守护进程的主机名/IP。如果使用Linux,这是Linux机器的IP。如果使用OSX或Windows(通过Boot2docker),可以通过输入boot2docker ip获取Docker主机。在我的机器上,NameNode UI可通过http://192.168.59.103:50070/访问。
| 组件 | 端口 |
|---|---|
| HDFS NameNode | [***] |
| HDFS DataNode | [***] |
| HDFS Secondary NameNode | [***] |
| YARN Resource Manager | [***] |
| YARN Node Manager | [***] |
注意:终端需要位于docker-compose.yml所在的文件夹中。
可以使用docker-compose启动此镜像。它将启动一个NameNode、一个Secondary NameNode和一个DataNode。可以扩展DataNode的数量。
bashdocker-compose up -d && \ docker-compose logs
如果日志中一切正常(无错误),按CTRL + C将控制台与日志分离。
如果要增加集群中DataNode的数量:
bashdocker-compose scale datanode=<实例数量>
为了允许DataNode扩展,需要让Docker决定主机上使用的端口。要查找端口:
bashdocker-compose port datanode 50075
使用此端口,可以访问DataNode的Web界面。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 gelog/hadoop 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: