datanodes无法连接到namenode

jvlzgdj9  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(555)

我是docker的新手,正在尝试用DockerSwarm构建hadoop集群。我试着用docker compose来构建它,效果非常好。不过,我想在将来添加其他服务,如hive、spark、hbase,所以swarm似乎是一个更好的主意。
当我尝试用3.7版yaml文件运行它时,namenode和datanodes成功启动。但是当我访问webui时,它显示在“datanodes”选项卡上没有可用的节点(在“overview”选项卡上也没有)。似乎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文件从这个repo更新到3.7版本,并尝试在gcp上运行它。这是我的回购协议,以防你想复制这个案子。
这是manager节点的端口状态:

工作节点:

谢谢你的帮助!

67up9zun

67up9zun1#

这似乎是一个网络相关的问题,豆荚正在运行,但他们没有注册在您的网络图形用户界面上,可能是网络通信,它没有达到他们之间。检查内部防火墙规则和操作系统防火墙,在特定端口上运行一些网络测试。

相关问题