
gelog/hadoop!hadoop logo
和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
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示例。
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可通过[***]访问。
| 组件 | 端口 |
|---|---|
| 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界面。




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