Я новичок в 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. И здесь - это мой репозиторий на случай, если вы захотите повторить дело.
И это состояние портов узла диспетчера:
рабочий узел:
Спасибо за помощь!