【发布时间】:2020-06-30 21:38:01
【问题描述】:
我是 Docker 新手,正在尝试使用 Docker Swarm 构建 Hadoop 集群。我尝试使用 docker compose 构建它,并且效果很好。但是,我想在未来添加其他服务,如 Hive、Spark、HBase,所以 Swarm 似乎是一个更好的主意。
当我尝试使用 3.7 版 yaml 文件运行它时,namenode 和 datanodes 成功启动。但是当我访问 Web UI 时,它显示“Datanodes”选项卡上没有可用的节点(“Overview”选项卡上也没有)。似乎数据节点无法连接到名称节点。我用netstat -tuplen检查了每个节点的端口,7946和4789都工作正常。
这是我使用的yaml文件:
version: "3.7"
services:
namenode:
image: flokkr/hadoop:latest
hostname: namenode
networks:
- hbase
command: ["hdfs","namenode"]
ports:
- target: 50070
published: 50070
- target: 9870
published: 9870
environment:
- NAMENODE_INIT=hdfs dfs -chmod 777 /
- ENSURE_NAMENODE_DIR=/tmp/hadoop-hadoop/dfs/name
env_file:
- ./compose-config
deploy:
mode: replicated
replicas: 1
restart_policy:
condition: on-failure
placement:
constraints:
- node.role == manager
datanode:
image: flokkr/hadoop:latest
networks:
- hbase
command: ["hdfs","datanode"]
env_file:
- ./compose-config
deploy:
mode: global
restart_policy:
condition: on-failure
volumes:
namenode:
datanode:
networks:
hbase:
name: hbase
基本上我只是将 yaml 文件从 this repo 更新到 3.7 版并尝试在 GCP 上运行它。 here 是我的仓库,以防你想复制这个案例。
感谢您的帮助!
【问题讨论】:
-
您是否使用 GCP 上的虚拟机和 Docker 和 Docker compose 来实施和部署自己的集群?另外,哪个网络用户界面在谈论?
-
是的!这是我对 GCP 所做的事情。首先,我使用 docker machine(驱动程序:google)在 GCP 上创建 3 个实例(1 个经理 2 个工人)。然后我使用docker stack deploy和上面的yaml文件来实现hadoop集群。我指的是管理器节点的端口 9870 Web UI。谢谢!
标签: docker hadoop google-cloud-platform nodes docker-swarm