도커로 Spark-Zepplein 세팅하기

AWS로 Spark 공부를 진행하다 보니 비용이 만만치 않아서 도커를 통해 세팅 후 공부를 진행하기로 했다.

1. docker-compose up

https://github.com/big-data-europe/docker-spark 를 참고하여 docker-compose.yml파일을 만들어, 컨테이너를 띄워보았다.

아래 코드를 실행하여 docker-compose up을 실행한다.

git clone https://github.com/kidae92/docker-spark-zeppelin.git
cd docker-spark-zeppelin
docker-compose up -d --build

아래와 같이 4개의 컨테이너가 형성된다.

CONTAINER ID   IMAGE                                  COMMAND                  CREATED       STATUS       PORTS                                                                                            NAMES
e83caecab411   spark-zeppelin                         "/bin/sh -c '$ZEPPEL…"   2 hours ago   Up 2 hours   8081/tcp, 0.0.0.0:8888->8080/tcp                                                                 spark-zeppelin
eb53fd0ad3f1   bde2020/spark-worker:3.0.2-hadoop3.2   "/bin/bash /worker.sh"   2 hours ago   Up 2 hours   0.0.0.0:8081->8081/tcp, :::8081->8081/tcp                                                        spark-worker-1
8a4f193ea019   bde2020/spark-worker:3.0.2-hadoop3.2   "/bin/bash /worker.sh"   2 hours ago   Up 2 hours   0.0.0.0:8082->8081/tcp, :::8082->8081/tcp                                                        spark-worker-2
255322868fc5   bde2020/spark-master:3.0.2-hadoop3.2   "/bin/bash /master.sh"   2 hours ago   Up 2 hours   0.0.0.0:7077->7077/tcp, :::7077->7077/tcp, 6066/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   spark-master

2. 설치 확인

나는 연구실 서버에 도커를 띄워서 127.0.0.1:8080이 아닌 서버의 ip와 지정해준 port를 통해 Spark Master page를 확인할 수 있다. 또한 워커 두개가 떠 있는 것을 볼 수 있다.

마찬가지로 8081과 8082 워커의 UI도 들어가서 확인해 볼 수 있다.

ip:8888에 들어가니 Zepplein이 잘 실행되는 것을 볼 수 있었다. 처음에 Spark공부 할 때 Databrick으로 했었는데 Zeppelin이 좀 더 편한거 같기도 .. ?

구조는 아래 그림과 같다.

3. Spark 실행

Zeppelin 메인 화면에서 Create new note를 누르고 Default Interpreter을 spark로 선택 후 test note를 만들어보았다. (듀토리얼 파일이 미리 import되어 있는 것을 볼 수 있는 굉장히 설명이 잘되어 있는거 같다.)

spark 입력 후 재생 버튼 또는 Shift + Enter를 눌러보면 SparkSession이 있는 것을 볼 수 있고 Spark - Zepplein이 잘 연결되어 있는 것을 확인 할 수 있다.

좋은 웹페이지 즐겨찾기