Docker Compose 로 Hadoop 클러스터와 Presto 엔진 구축하기

2024. 6. 16. 16:59·Data Engineering/Hadoop
728x90

 

 

기본이 되는 hadoop cluster docker-compose.yml 은 아래의 repository 를 참고하였으며, presto 엔진을 사용하기 위해 수정하였다. 

 

https://github.com/big-data-europe/docker-hadoop

 

GitHub - big-data-europe/docker-hadoop: Apache Hadoop docker image

Apache Hadoop docker image. Contribute to big-data-europe/docker-hadoop development by creating an account on GitHub.

github.com

 

docker-compose.yml 파일은 다음과 같다. 

version: "3"

services:
  namenode:
    image: bde2020/hadoop-namenode:2.0.0-hadoop3.2.1-java8
    container_name: namenode
    restart: always
    ports:
      - 9870:9870
      - 9000:9000
    volumes:
      - hadoop_namenode:/hadoop/dfs/name
    environment:
      - CLUSTER_NAME=test
    env_file:
      - ./hadoop.env

  datanode:
    image: bde2020/hadoop-datanode:2.0.0-hadoop3.2.1-java8
    container_name: datanode
    restart: always
    volumes:
      - hadoop_datanode:/hadoop/dfs/data
    environment:
      SERVICE_PRECONDITION: "namenode:9870"
    env_file:
      - ./hadoop.env
  
  resourcemanager:
    image: bde2020/hadoop-resourcemanager:2.0.0-hadoop3.2.1-java8
    container_name: resourcemanager
    restart: always
    environment:
      SERVICE_PRECONDITION: "namenode:9000 namenode:9870 datanode:9864"
    env_file:
      - ./hadoop.env

  nodemanager1:
    image: bde2020/hadoop-nodemanager:2.0.0-hadoop3.2.1-java8
    container_name: nodemanager
    restart: always
    environment:
      SERVICE_PRECONDITION: "namenode:9000 namenode:9870 datanode:9864 resourcemanager:8088"
    env_file:
      - ./hadoop.env
  
  historyserver:
    image: bde2020/hadoop-historyserver:2.0.0-hadoop3.2.1-java8
    container_name: historyserver
    restart: always
    environment:
      SERVICE_PRECONDITION: "namenode:9000 namenode:9870 datanode:9864 resourcemanager:8088"
    volumes:
      - hadoop_historyserver:/hadoop/yarn/timeline
    env_file:
      - ./hadoop.env

  prestocoordinator:
    image: prestodb/presto:latest
    container_name: prestocoordinator
    restart: always
    ports:
      - 8080:8080
    environment:
      PRESTO_CONFIG: |
        coordinator=true
        node-scheduler.include-coordinator=true
        http-server.http.port=8080
        query.max-memory=5GB
        query.max-memory-per-node=1GB
        discovery-server.enabled=true
        discovery.uri=http://prestocoordinator:8080
    volumes:
      - presto_coordinator:/var/presto/data
    depends_on:
      - namenode
      - datanode
      - resourcemanager
      - nodemanager1
      - historyserver

  prestoworker:
    image: prestodb/presto:latest
    container_name: prestoworker
    restart: always
    environment:
      PRESTO_CONFIG: |
        coordinator=false
        http-server.http.port=8080
        query.max-memory=5GB
        query.max-memory-per-node=1GB
        discovery.uri=http://prestocoordinator:8080
    volumes:
      - presto_worker:/var/presto/data
    depends_on:
      - prestocoordinator
  
  prestocli:
    image: prestodb/presto:latest
    container_name: prestocli
    

volumes:
  hadoop_namenode:
  hadoop_datanode:
  hadoop_historyserver:
  presto_coordinator:
  presto_worker:

Presto 가 제공하는 web ui 에 접속하기 위하여 localhost:8080 으로 접속했다. 

Presto ui

 

SQL Client 에서  system.runtime schema 에서 SHOW TABLES; 쿼리를 실행시켜보았다. 

SELECT 쿼리를 실행시켜보았다.

728x90

'Data Engineering > Hadoop' 카테고리의 다른 글

Docker Compose 로 Hadoop 환경에서 Kafka Cluster 구축하기  (0) 2024.06.23
'Data Engineering/Hadoop' 카테고리의 다른 글
  • Docker Compose 로 Hadoop 환경에서 Kafka Cluster 구축하기
minjiwoo
minjiwoo
Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험과 공부한 내용을 기록하며 지속가능한 엔지니어가 되는 것이 꿈입니다.
minjiwoo
minji's engineering note
minjiwoo
전체
오늘
어제
  • 분류 전체보기 (613)
    • Data Engineering (42)
      • Apache Spark (11)
      • Databricks & Delta Lake (9)
      • Airflow (3)
      • SQL (6)
      • Trouble Shooting (2)
      • Hadoop (2)
      • MLOps (1)
    • Cloud Engineering (104)
      • AWS (23)
      • Linux 🐧 (29)
      • Docker 🐳 (21)
      • Kubernetes ⚙️ (20)
      • Ansible (10)
    • Computer Science (87)
      • 네트워크 (9)
      • 운영체제 (25)
      • 정보처리기사 (48)
      • CS 기술 면접 스터디 (3)
    • Programming Languages (27)
      • Python (17)
      • C와 C++ (10)
    • Backend (5)
      • Django (2)
    • 프로젝트 (2)
      • 테크포임팩트 (2)
    • iOS (11)
      • 레이블러리 (2)
    • Algorithm (PS) (275)
      • LeetCode (6)
    • 개발일기 (30)
      • 내돈내산 후기🎮 (3)
      • 개발자 취준생 (5)
      • Today I Learned (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Hi there

인기 글

태그

  • 운영체제
  • dfs
  • 데이터브릭스
  • 클라우드
  • 쿠버네티스
  • docker
  • Kubernetes
  • python
  • EC2
  • 스파크
  • dp
  • AWS
  • 데이터엔지니어링
  • 데이터엔지니어
  • 파이썬
  • linux
  • Databricks
  • Swift
  • SPARK
  • 백트래킹
  • BFS
  • 코딩테스트
  • 백준
  • 리눅스
  • 알고리즘
  • Leetcode
  • 카카오코딩테스트
  • 빅데이터
  • ansible
  • 프로그래머스

최근 댓글

최근 글

hELLO· Designed By정상우.v4.5.2
minjiwoo
Docker Compose 로 Hadoop 클러스터와 Presto 엔진 구축하기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.