Hadoop namenode не распознает узлы данных в docker

#docker #hadoop #docker-compose

#docker #hadoop #docker-compose

Вопрос:

Я новичок и учусь запускать систему hadoop с помощью Docker, но я застрял в одной точке на несколько недель, и, наконец, я должен спросить здесь. Я мог запускать контейнеры по отдельности без каких-либо проблем, и namenode всегда распознавал запущенные namenodes. Однако, когда я попытался настроить файл Docker-compose.yml для одновременного запуска всех контейнеров, я столкнулся с несколькими проблемами, одна из которых заключается в том, что namenode никогда не распознавал запущенные datanodes. У вас есть какие-либо предложения, чтобы помочь мне это исправить?

Вот мой файл docker-compose:

    version: "3"

services:
  base:
    image: hpcnube-base-image
  hpcnube-namenode:
    image: hpcnube-namenode-image
    depends_on:
      - base
    hostname: hpcnube-namenode
    container_name: hpcnube-namenode
    networks:
      - dockerfiles1_hpcnube-net
    ports:
      - "9870:9870" 
  hpcnube-resourcemanager:
    image: hpcnube-resourcemanager-image

    container_name: hpcnube-resourcemanager
    depends_on:
      - hpcnube-namenode
      - hpcnube-dnnm2
      - hpcnube-dnnm1
    hostname: hpcnube-resourcemanager
    networks:
      - dockerfiles1_hpcnube-net
    ports:
      - "8088:8088"

  hpcnube-dnnm1:
    image:  hpcnube-dnnm-image
    container_name: hpcnube-dnnm1
    hostname: hpcnube-dnnm1
    depends_on:
      - base
      - hpcnube-namenode
    networks:
      - dockerfiles1_hpcnube-net
    #command: "/opt/bd/start-daemons.sh"
  hpcnube-dnnm2:
    #build:  ./DataNode-NodeManager
    image: hpcnube-dnnm-image

    container_name: hpcnube-dnnm2
    hostname: hpcnube-dnnm2
    depends_on:
      - base
      - hpcnube-namenode
    networks:
      - dockerfiles1_hpcnube-net
    #command: "/opt/bd/start-daemons.sh"
  hpcnube-checkpoint:
    image: hpcnube-checkpointnode-image
    hostname: hpcnube-checkpointnode
    depends_on:
      - base
      - hpcnube-namenode
      - hpcnube-resourcemanager
      - hpcnube-dnnm2
      - hpcnube-dnnm1
    networks:
      - dockerfiles1_hpcnube-net
  hpcnube-timeline:
    image: hpcnube-timelineserver-image
    hostname: hpcnube-timelineserver
    depends_on:
      - base
      - hpcnube-namenode
      - hpcnube-resourcemanager
      - hpcnube-dnnm2
      - hpcnube-dnnm1
      - hpcnube-checkpoint
    networks:
      - dockerfiles1_hpcnube-net

  hpcnube-frontend:
    build: ./FrontEnd
    hostname: hpcnube-frontend
    depends_on:
      - base
      - hpcnube-namenode
      - hpcnube-resourcemanager
      - hpcnube-dnnm2
      - hpcnube-dnnm1
      - hpcnube-checkpoint
      - hpcnube-timeline
    hostname: hpcnube-frontend
    networks:
      - dockerfiles1_hpcnube-net
    ports:
      - "2345:22" 



networks:
  dockerfiles1_hpcnube-net:
    driver: bridge
  

Комментарии:

1. @Ян В., ваши контейнеры находятся на разных физических хостах? потому что, если они это сделают, вы не сможете использовать bridge network. Фактически, мостовая сеть предназначена для нескольких контейнеров на одном хосте.

2. @M_Gh Нет, все мои контейнеры находятся на одном компьютере. Я действительно не знаю, что не так.

3. @Ян В., пожалуйста, взгляните на это ( ordina-jworks.github.io/docker/2018/09/24 /… ). Вы можете легко создать сеть с помощью Weave.