본 내용은 [멀티캠퍼스] 데이터 분석&데이터 엔지니어링 취업캠프 28회차에서 실시한 수업 내용 중 일부입니다.
구글 클라우드를 사용해서 스파크를 설치했다.
구글 클라우드 콘솔 접속
프로젝트 클릭
새 프로젝트 클릭
프로젝트 이름 입력, 개인 계정을 이용할 경우 필자와 화면이 다를 수 있음(하지만 전반적인 과정은 큰 차이가 없음)
프로젝트가 잘 설정되어 있는지 확인
인스턴스 생성
메뉴 탭 -> Compute Engine -> VM 인스턴스
최초에는 설치 필요
인스턴스 만들기 클릭
이름 및 리전(지역) 설정
가장 기본인 E2 선택
e2 medium 선택
아래로 스크롤을 내려 부팅 디스크의 변경 클릭
운영체제: Ubuntu 선택 버전은 기본값을 사용
방화벽의 위 2가지 설정 체크
인스턴스 생성 확인
방화벽 설정
메뉴 탭 -> VPC 네트워크 -> 방화벽 혹은 화면의 다른 2가지 방법으로 접속
방화벽 규칙 만들기 클릭
이름 설정
대상을 다음과 같이 변경
0.0.0.0/0은 모든 ip를 허용한다는 의미이다.
프로토콜 및 포트 모두 적용 체크 후 만들기 클릭
새 방화벽 규칙 확인 가능
VM인스턴스 탭으로 이동 SSH 옆 더보기 클릭
개발환경 설치
브라우저 창에서 열기 클릭
miniconda 설치
- ls: 현재 디렉토리에 있는 파일과 서브 디렉토리의 목록을 표시한다.
- pwd: 현재 작업 중인 디렉토리의 경로를 표시한다.
- cd: 다른 디렉토리로 이동하는 데 사용된다.
- cd ..: 상위 디렉토리로 이동
- cd ~: 홈 디렉토리로 이동
- cd /path/to/directory: /path/to/directory로 이
opt 경로로 이동
cd ../../opt/
미니콘다 이동
리눅스 선택 후 나오는 코드 복사
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh
붙여넣고 엔터 2번
다시 미니콘다로 돌아가서 아래 코드 복사
~/miniconda3/bin/conda init bash
~/miniconda3/bin/conda init zsh
붙여넣기
JAVA 설치
창을 나온뒤에 다시 접속
(base) 가 앞에 생겼다면 성공
차례로 아래 코드 입력
sudo apt update
sudo apt install openjdk-8-jdk -y
opt 경로로 이동
JAVA 환경변수 설정
아래 코드로 Vi 텍스트 편집기를 사용하여 bashrc파일을 연다.
vi ~/.bashrc
맨아래로 스크롤한후 아래 코드 붙여넣기
# 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
입력을 다한후에는 esc키를 누르고 :wq!로 문서 밖으로 나온다.
아래 코드로 변경 내용 업데이트
source ~/.bashrc
스칼라 설치
아래 코드 입력
sudo apt-get install scala -y
스칼라 환경변수 설정
아래 코드로 bashrc파일 접속
vi ~/.bashrc
insert 키를 누른 후 아래 코드 붙여넣기
# SCALA ENV SET
export SCALA_HOME=/usr/bin/scala
export PATH=$SCALA_HOME/bin:$PATH
아까와 같은 방식으로 나온 후 아래 코드로 업데이트 하기
source ~/.bashrc
스파크 설치
opt 경로로 이동
추후에 사용할 교재와 버전을 맞추기 위해 3.1.1 버전 사용
아래 코드로 다운로드 진행
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
아래 코드로 spark 디렉토리를 생성하고 spark-3.1.1-bin-hadoop2.7 밑의 모든 파일을 spark 디렉토리로 이동
sudo mkdir spark
sudo mv spark-3.1.1-bin-hadoop2.7/* /opt/spark/
아래 코드로 spark 디렉토리로 이동 후 파일 확인
cd spark
ls
아래 코드로 사용자ID 확인
cd $home
pwd
pwd 했을 때 home 뒤에 나오는 것이 사용자ID이다. 이를 따로 기록해두거나 기억하자.
스파크 환경변수 설정
bashrc 파일로 접속
vi ~/.bashrc
아래 코드의 your_id 부분에 아까 확인 id를 붙여넣기
# SPARK ENV SET
export SPARK_HOME=/opt/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
export PYSPARK_PYTHON=/home/your_id/miniconda3/bin/python
변경 내용 업데이트
source ~/.bashrc
PySpark 설치
아래 코드 입력 위의 spark 버전과 일치시켜주는 것이 좋다.
pip install pyspark==3.1.1
PySpark 실행
cd $HOME
pyspark
Jupyter Notebook 설치 및 설정
아래 코드로 설치
conda install jupyter notebook
Jupyter 설정을 위해 아래 코드로 config 파일 생성
jupyter notebook --generate-config
아래 코드로 설정 파일에 접속
cd $HOME
vi ~/.jupyter/jupyter_notebook_config.py
파일안에서 / 누르기 -> allow_root 입력 -> enter 누르기 -> i 누르기 -> 주석을 없애고(행 앞의 # 제거) False를 True로 변경
/ 누르기 -> .ip = 입력 -> enter 누르기 -> i 누르기 -> 주석을 없애고(행 앞의 # 제거) localhost를 0.0.0.0으로 변경
이전과 동일한 방식으로 나오기
테스트
아래 코드로 jupyter notebook 실행
jupyter notebook
아래와 같이 빨간 박스 처진 토큰값을 따로 기록해두기
외부 ip를 복사한다.
주소창에 복사한 외부ip:8888을 입력
필자의 경우 이미 로그인 한적이 있어서 아래 화면과 같이 나온다.
처음 접속한다면 위에서는 토큰값으로 로그인할 수 있고 아래에서는 토큰값을 입력하고 변경하고 싶은 비밀번호를 설정하여 로그인할 수 있다.
주피터 노트북에 접속
새로운 파일을 만들어 테스트
사용한 코드는 아래와 같다.
import pyspark
pyspark.__version__
from pyspark.sql import Row
from pyspark.sql.types import *
from pyspark.sql import SparkSession
spark = (SparkSession.builder.appName("Authors").getOrCreate())
spark
2번째 코드를 실행했을 때 에러가 발생한다면 외부ip:4040 을 주소창에 입력하여 들어간 후 다시 실행하면 정상적으로 작동한다.
모든 실습이 끝나면 인스턴스를 반드시 중지해야 한다. (과다청구될 수 있다.)
정지가 아닌 중지임을 꼭 명심하자
청구되는 비용은 메뉴 탭의 결제에서 확인할 수 있다.