+
version: '3.4'
+
+services:
+ namenode:#εκκίνηση της υπηρεσίας nodename
+ image: bde2020/hadoop-namenode:2.0.0-hadoop3.2.1-java8
+ ports:
+ #expose στην πόρτα 9870
+ - 9870:9870
+ networks:
+ - hbase
+ volumes:
+ - namenode:/hadoop/dfs/name
+ environment:
+ - CLUSTER_NAME=test
+ env_file:
+ - ./hadoop.env
+ deploy:
+ #replicas number
+ mode: replicated
+ replicas: 1
+ restart_policy:
+ condition: on-failure
+ placement:
+ constraints:
+ #deploy μόνο στον leader του swarm
+ - node.role == manager
+ labels:
+ traefik.docker.network: hbase
+
+ datanode:
+ #εκκίνηση datanode υπηρεσίας
+ image: bde2020/hadoop-datanode:2.0.0-hadoop3.2.1-java8
+ ports:
+ #expose στην πόρτα 9864
+ - 9864:9864
+ networks:
+ - hbase
+ volumes:
+ - datanode:/hadoop/dfs/data
+ env_file:
+ - ./hadoop.env
+ environment:
+ SERVICE_PRECONDITION: "namenode:9870"
+ deploy:
+ #το global συμαίνει ότι η υπηρεσία γίνεται expose σε όλους τους κόμβους του swarm.
+ mode: global
+ restart_policy:
+ condition: on-failure
+ labels:
+ traefik.docker.network: hbase
+
+ resourcemanager:
+ #εκκίνηση resource manager υπηρεσίας.
+ image: bde2020/hadoop-resourcemanager:2.0.0-hadoop3.2.1-java8
+ ports:
+ #expose στην πόρτα 8088
+ - 8088:8088
+ networks:
+ - hbase
+ environment:
+ SERVICE_PRECONDITION: "namenode:9870 datanode:9864"
+ env_file:
+ - ./hadoop.env
+ deploy:
+ mode: replicated
+ replicas: 1
+ restart_policy:
+ condition: on-failure
+ placement:
+ constraints:
+ #expose μόνο στον leader του swarm.
+ - node.role == manager
+ labels:
+ traefik.docker.network: hbase
+ healthcheck:
+ disable: true
+
+ nodemanager:
+ #εκκίνηση node manager υπηρεσίας
+ image: bde2020/hadoop-nodemanager:2.0.0-hadoop3.2.1-java8
+ ports:
+ #expose στην πόρτα 8042
+ - 8042:8042
+ networks:
+ - hbase
+ environment:
+ SERVICE_PRECONDITION: "namenode:9870 datanode:9864 resourcemanager:8088"
+ env_file:
+ - ./hadoop.env
+ deploy:
+ #λειτουργία σε global mode.
+ mode: global
+ restart_policy:
+ condition: on-failure
+ labels:
+ traefik.docker.network: hbase
+
+ historyserver:
+ #εκκίνηση history server υπηρεσίας.
+ image: bde2020/hadoop-historyserver:2.0.0-hadoop3.2.1-java8
+ ports:
+ #expose στην πόρτα 8188.
+ - 8188:8188
+ networks:
+ - hbase
+ volumes:
+ - hadoop_historyserver:/hadoop/yarn/timeline
+ environment:
+ SERVICE_PRECONDITION: "namenode:9870 datanode:9864 resourcemanager:8088"
+ env_file:
+ - ./hadoop.env
+ deploy:
+ mode: replicated
+ replicas: 1
+ placement:
+ constraints:
+ #expose μόνο στον leader του swarm.
+ - node.role == manager
+ labels:
+ traefik.docker.network: hbase
+
+volumes:
+ datanode:
+ external: false
+ namenode:
+ hadoop_historyserver:
+
+#ανάθεση των replicas στο δίκτυο που έχουμε φτιάξει.
+networks:
+ hbase:
+