Docker Swarm上的Hadoop集群-数据节点无法连接到Namenode

时间:2020-03-19 17:44:21

标签: docker hadoop google-cloud-platform nodes docker-swarm

我是Docker的新手,正在尝试使用Docker Swarm构建Hadoop集群。我试图用docker compose来构建它,并且效果很好。但是,我想在将来添加其他服务,例如Hive,Spark,HBase,因此Swarm似乎是一个更好的主意。

当我尝试使用3.7版yaml文件运行它时,namenode和datanodes成功启动。但是当我访问Web UI时,它显示“数据节点”选项卡上没有可用的节点(“概述”选项卡上都没有)。似乎datanodes无法连接到namenode。我已经用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是我的仓库,以备您复制。

这是管理器节点的端口状态: enter image description here

工作节点: enter image description here

谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这似乎是与网络相关的问题,pod正在运行,但是它们未在您的Web GUI上注册,也许它们之间没有进行网络通信。检查您的内部防火墙规则和OS防火墙,并在特定端口上运行一些网络测试。