### docker-compose.yml: add HDFS namenodes ###

  namenode:
    build:
      context: .
      dockerfile: Dockerfile.cluster
    image: hadoop-tutorial
    volumes:
      - ./data/namenode:/namenode
    command: bash -c 'hdfs namenode'
    hostname: namenode
    networks:
      - cluster

### docker-compose.yml: add HDFS datanodes ###

  datanode1:
    build:
      context: .
      dockerfile: Dockerfile.cluster
    image: hadoop-tutorial
    volumes:
      - ./data/datanode1:/datanode
    command: bash -c 'hdfs datanode'
    hostname: datanode1
    networks:
      - cluster

  datanode2:
    extends:
      service: datanode1
    volumes:
      - ./data/datanode2:/datanode
    hostname: datanode2
    
  datanode3:
    extends:
      service: datanode1
    volumes:
      - ./data/datanode3:/datanode
    hostname: datanode3


### docker-compose.yml: add YARN ###


  resourcemanager:
    build:
      context: .
      dockerfile: Dockerfile.cluster
    image: hadoop-tutorial
    hostname: resourcemanager
    command: bash -c 'yarn resourcemanager'
    networks:
      - cluster
    
  nodemanager1:
    build:
      context: .
      dockerfile: Dockerfile.cluster
    cpu_count: 1
    image: hadoop-tutorial
    command: bash -c 'yarn nodemanager'
    hostname: nodemanager1
    networks:
      - cluster

  nodemanager2:
    extends:
      service: nodemanager1
    hostname: nodemanager2

  nodemanager3:
    extends:
      service: nodemanager1
    hostname: nodemanager3
