Mascarpone-Cheese-Cake / NerdNode

✅ 다양한 작업을 공유하며 공부하는 스터디 모임
2 stars 0 forks source link

Hadoop Eco 구축 #10

Open cheol2Y opened 5 months ago

cheol2Y commented 5 months ago

Docker로 Hadoop과 Hadoop Eco System 구축하기

cheol2Y commented 5 months ago

우선적으로 Main instance에 Hadoop을 구축한다.

Data 인프라 구축을 위해서 데이터 저장소인 Hadoop은 필수적이기에 간단하게나마 구축할 예정

Namenode, datanode를 한곳에 구축한 후 이후에 데이터가 많아진다면 Sub Instance에 하둡을 이전 시킬 계획

cheol2Y commented 5 months ago

docker-compose.yml

version: '3.3'
services:
 hadoop-namenode:
    image: apache/hadoop:3.3.5
    volumes:
      - ./hadoop_namenode:/hadoop/dfs/name
    environment:
      - HADOOP_NAMENODE_OPTS=-Dhadoop.tmp.dir=/hadoop/dfs/name
    ports:
      - "50070:50070"
      - "8020:8020"

 hadoop-datanode:
    image: apache/hadoop:3.3.5
    volumes:
      - ./hadoop_datanode:/hadoop/dfs/data
    environment:
      - HADOOP_DATANODE_OPTS=-Dhadoop.tmp.dir=/hadoop/dfs/data
    depends_on:
      - hadoop-namenode

 hive-metastore:
    image: prestodb/hive3.1-hive:latest
    volumes:
      - ./hive_metastore:/var/lib/hive/metastore
    depends_on:
      - hadoop-namenode

 spark-master:
    image: apache/spark:v3.1.3
    volumes:
      - ./spark-data:/opt/spark-data
    ports:
      - "7077:7077"
      - "8081:8080"
    environment:
      - SPARK_LOCAL_IP=spark-master
      - SPARK_WORKLOAD=master

 spark-worker:
    image: apache/spark:v3.1.3
    volumes:
      - ./spark-data:/opt/spark-data
    depends_on:
      - spark-master
    environment:
      - SPARK_MASTER=spark://spark-master:7077
      - SPARK_WORKER_CORES=1
      - SPARK_WORKER_MEMORY=1G
      - SPARK_DRIVER_MEMORY=1G
      - SPARK_EXECUTOR_MEMORY=1G
      - SPARK_WORKLOAD=worker
      - SPARK_LOCAL_IP=spark-worker

Spark의 Executor는 추후에 성능에 맞게 변환예정 Spark - Master의 포트는 8081로 옮겨두었다. 8080은 쓰는 프로그램이 많기 때문에

cheol2Y commented 5 months ago

Hadoop, Hive, Spark의 이미지를 가져올때 버전이 서로 호환 가능한지를 확실히 확인하고 가져와야한다.

Docker hub에 해당 이미지가 있는지 확인하고 알맞게 가져와야하는것도 잊지 말기

이미지들을 latest 버전으로 가져오면 인터넷에 정보가 많지 않으므로 낮은 버전을 가져오는 것을 추천

cheol2Y commented 5 months ago

위에 처럼 간단히 구성될 줄 알았으나,, conf, yml 등 env파일을 설정해줘야했다.