Был oop кластер на Docker Swarm - Datanodes не удалось подключиться к Namenode - PullRequest
0 голосов
/ 19 марта 2020

Я новичок в Docker и пытаюсь построить кластер Had oop с Docker Swarm. Я попытался собрать его с docker compose, и он работал отлично. Тем не менее, я хотел бы добавить другие сервисы, такие как Hive, Spark, HBase, в будущем, так что Swarm кажется лучшей идеей.

Когда я пытался запустить его с файлом yaml версии 3.7, 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 с этого репо до версии 3.7 и пытался запустить его на GCP. И здесь - это мой репозиторий на случай, если вы захотите повторить дело.

И это состояние портов узла диспетчера: enter image description here

рабочий узел: enter image description here

Спасибо за помощь!

1 Ответ

0 голосов
/ 20 марта 2020

Кажется, это проблема, связанная с сетью, модули работают, но они не регистрируются в вашем Интернете GUI возможно, сетевое взаимодействие между ними не достигается. Проверьте правила внутреннего брандмауэра и брандмауэр ОС, запустите сетевой тест на указанных c портах.

...