주말 나머지공부가 끝나고.. 새로운 마음으로 Spark Standalone 클러스터를 만들어보려고 한다.

현재 예상되는 프로세스는

  1. Spark를 설치하는 Dockerfile 만들기
  2. start_master.sh와 start_worker.sh 두 개를 만들어서 Entrypoint가 다른 두 이미지 만들기
  3. docker-compose.yaml 파일을 만들어서 띄우고
  4. monte carlo 예제 만들어 제출

Spark를 설치해보자

FROM ubuntu:24.04

RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive TZ=Asia/SEOUL apt-get -y install tzdata

RUN apt-get install -y openjdk-17-jdk wget

ENV JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"
ENV PATH="$JAVA_HOME/bin:$PATH"

RUN mkdir workspace
WORKDIR workspace

RUN wget <https://dlcdn.apache.org/spark/spark-4.0.0/spark-4.0.0-bin-hadoop3.tgz> && \\
    tar -xvzf spark-4.0.0-bin-hadoop3.tgz

WORKDIR spark-4.0.0-bin-hadoop3

이제는 worker master를 분리해야 하니 각자 다른 shellscript를 만들려고 했지만, worker script를 실행할지 master script를 실행할지 단 한 줄만 차이가 나니까 yaml파일에서 cmd로 실행하도록 하고 Dockerfile을 더 깔끔하게 정리했다.