Google Cloud Platform의 VM 머신에 Spark를 설치하는 과정을 정리한다.
23.10.17 작성
0. 프로젝트 생성
만약 새롭게 시작한다면 프로젝트 생성부터 시작한다.
프로젝트 탭을 열어 새 프로젝트를 생성한 후
이름을 지어주고 만들기
단, 이름은 이후 수정이 불가하다.
이후 과정은 새로운 프로젝트 내부에서 사용한다.
만약 삭제를 원한다면 프로젝트 설정
=> 프로젝트 종료
=> 프로젝트 명 작성
한다. 프로젝트는 종료되고 삭제는 한 달후 진행된다.
1. 인스턴스 생성과 보안
1. 인스턴스 생성
원하는 프로젝트로 이동 후 인스턴스를 생성한다.
VM인스턴스
에 진입하면 인스턴스 리스트가 나오는데, 인스턴스 만들기
버튼을 눌러 생성한다.
옆에 요금창이 나온다. 무료 기간이면 무료로 사용되지만 기간이 지나면 해당 금액으로 부과(사용하면)된다. 리소스에 따라 부과 요금이 달라지니 주머니 사정에 잘 맞게 설정하자.
이름: 인스턴스의 이름. 헷갈리지 않게 잘 작성하자.
리전: 데이터센터의 위치. 한국이면 한국 리전이 가장 좋으나 백업용으로 타 국가에 설정하는 경우도 많다. ex) 한국의 지진 등 재난상황을 대비해 미국에 설정
영역: 리전 내의 독립된 영역. 같은 데이터 센터에 위치해도 전력배치 등 물리적 요소로 분리되어있음.
머신 구성: 하드웨어 리소스. 원하는 리소스를 선택하자. 만약 하드웨어 지식이 없다면 기본을 선택하자.
부팅 디스크: OS 선택.
방화벽: 네트워크 트래픽 허용 범위를 구성함. 요즘은 HTTPS를 사용하는데 가끔 HTTP도 사용함.
까지만 선택하면 일반 세팅은 완료되었다. 만들기
버튼을 누르면 생성된다.
참고.
가상 PC이기 때문에 로컬의 전원을 내려도 인스턴스는 활성화 되어있다. 요금폭탄이 싫다면 사용 중지하자.
정지가 아니라 중지
다.
2. 방화벽 설정
방화벽 규칙 만들기
대상: 접속 환경 필터.
네트워크의 모든 인스턴스
를 선택하면 네트워크에서 접속하는 인스턴스를 모두 허용함소스 IPv4 범위: IPv4의 이름을 작성. 모든 IPv4를 허용하면
0.0.0.0/0
프로토콜 및 포트: 접속 프로토콜과 포트를 지정. 모두 선택하거나 지정만 가능
이렇게 환경에 맞게 나머지 설정
만들기
2. SSH - 브라우저
인스턴스를 SSH 접속하자. 다른 방법을 이용해도 좋지만 브라우저를 이용해 접속 할 것이다.
누르면 체크가 나오는데 체크하고 계정 연결.
터미널 화면이 나온다!!
3. 미니콘다 설치
1
cd ../../opt
로 디렉토리 이동 후
Quick install 명령어를 터미널에서 실행
그리고 재부팅하면
미니콘다가 설치된걸 확인 가능하다.
1
sudo apt update
로 apt 업데이트.
설치 가능한 패키지들을 최신화 한다.(설치아님)
4. 프로그램 설치
1. Java 설치
opt 디렉토리로 이동 후
1
cd ../../opt
openjdk-8
을 설치
1
sudo apt install openjdk-8-jdk
Vi 편집
1
vi ~/.bashrc
환경변수 설정 (다행히 GCP의 터미널은 Ctr 기능키가 먹힌다)
1
2
3
4
# JAVA ENV SET
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASS_PATH=$JAVA_HOME/lib:$CLASS_PATH
수정된 파일 실행
1
source ~/.bashrc
2. Scala 설치
1
sudo apt-get install scala -y
vi 편집기 실행
1
vi ~/.bashrc
환경변수 설정
1
2
3
# SCALA ENV SET
export SCALA_HOME=/usr/bin/scala
export PATH=$SCALA_HOME/bin:$PATH
수정된 파일 실행
1
source ~/.bashrc
3. Spark 설치
Spark를 설치하는데 이번엔 이전 버전의 Spark를 설치한다. 만약 최신버전을 설치한다면
1. 최신버전 설치
원하는 옵션 선택 후 다운로드 링크를 복사하면 된다.
2. 이전버전 설치
Spark Archive 에 접속해 해당 버전의 tgz 파일의 링크를 복사한다.
이하 이전버전.
1
2
3
4
5
6
7
sudo wget https://archive.apache.org/dist/spark/spark-3.1.1/spark-3.1.1-bin-hadoop2.7.tgz
sudo tar xvf spark-3.1.1-bin-hadoop2.7.tgz
sudo mkdir spark
sudo mv spark-3.1.1-bin-hadoop2.7/* /opt/spark/
경로 확인
1
2
3
4
5
cd $HOME
ls
pwd
miniconda3
가 있는 경로 확인. 나는 /home/계정명
에 있다.
vi 편집기 실행
1
vi ~/.bashrc
Spark 환경변수 설정
1
2
3
4
# SPARK ENV SET
export SPARK_HOME=/opt/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
export PYSPARK_PYTHON=/home/경로/miniconda3/bin/python
수정된 파일 실행
1
source ~/.bashrc
위 과정을 모두 거치면 세 개의 환경변수 설정이 완료 되어있어야 한다.
4. PySpark 설치
설치하기
1
pip install pyspark==3.1.1
위에서 불러온 버전과 맞는 버전으로 설치하자.
실행하기
1
2
3
cd $HOME
pyspark
Spark 설치 완료!!
5. Jupyter Notebook 설치
설치
1
conda install jupyter notebook
config
파일 생성
1
jupyter notebook --generate-config
해당 문장이 출력됨
1
# Writing default config to: /home/kimec995/.jupyter/jupyter_notebook_config.py
경로 이동
1
cd /home/계정명
vi 이동
1
vi ~/.jupyter/jupyter_notebook_config.py
vi 편집하기
찾기
1
/ allow_root
찾기
1
/ NotebookApp.ip
Jupyter Notebook 실행
1
jupyter notebook
token 복사
브라우저의 이동탭에 본인 인스턴스의 외부IP
와 JupyterNotebook 에서 띄운 Port 번호를 입력하자.
token 입력하면 접속 완료!!
테스트
버전확인
1
2
import pyspark
pyspark.__version__
스파크 설치
1
2
3
4
5
6
from pyspark.sql import Row
from pyspark.sql.types import *
from pyspark.sql import SparkSession
spark = (SparkSession.builder.appName("Authors").getOrCreate())
spark
링크의 Port 번호를 확인, 마찬가지로 외부IP
+ SparkPort
입력
GCP의 환경에 Jupyter lab과 Spark를 설치했다!!
마무리
사용 안하면 꼭!!!! 끄자!!!