새소식

데이터 엔지니어링/기술스택 및 알쓸신잡

[Spark] 로컬 환경 구축하기!

  • -

저번 포스팅에서 도커 스웜을 활용해 스파크 클러스터를 구현하는 방법을 다뤘다.

하지만, 모든 개발이 그렇듯, 테스트를 거쳐야 배포도 하는 것..

이번엔 스파크 클러스터에 제출하기 전에, 동작하는지 테스트하기 위한 로컬 환경을 구축하는 방법에 대해 다룰 예정이다.

스파크 클러스터 구축이 궁금하신 분들은 여기...

https://9unu.tistory.com/34


 

TODO list

  • 로컬 환경 구축 전 핵심 개념 (스파크 = 자바 프레임워크)
  • Java 설치 및 환경변수 설정
  • Spark 설치 및 설정
  • 필요한 커넥터 및 라이브러리 설치
  • 마무리

1. 로컬 환경 구축 전 핵심 개념 (스파크 = 자바 프레임워크)

사실 로컬 환경 구축이 귀찮을 뿐, 중요한 내용은 없어서 빠르게 명령어 위주로 슥슥 하고 끝낼 것이다.

그전에 핵심만 좀 짚자면,

기본적으로 스파크, 하둡은 모두 자바를 기반으로 만들어진 프레임워크로, 기본 작업 환경은 자바여야한다.

다만 pyspark등의 api 구현이 잘 되어있어서 자바 환경만 잘 만들어주면, 그 다음 실행 파일 등은 편한 언어로 작성하면 된다.

그럼 이제 시작함미다~~


2. Java 설치 및 환경변수 설정

2.1 Java 설치

Ubuntu:

# 자바 설치 (OpenJDK 8 기준)
sudo apt update
sudo apt install openjdk-8-jdk -y

# 설치 확인
java -version

macOS:

# Homebrew가 없다면 먼저 설치
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Java 설치
brew install openjdk@8

# 설치 확인
java -version

주의! 스파크 버전에 따라 호환되는 자바 버전이 다를 수 있다. 공식 문서 확인해보고 설치하는게 더 빠를 수 있으니 한번쯤 확인해보는걸 추천한다!

2.2 Java 환경변수 설정

Ubuntu:

# .bashrc 파일 열기
nano ~/.bashrc

# 파일 끝에 아래 내용 추가
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin

# 변경사항 적용
source ~/.bashrc

# 확인
echo $JAVA_HOME

macOS:

# .zshrc 또는 .bash_profile 열기
nano ~/.zshrc  # 또는 ~/.bash_profile

# 파일 끝에 아래 내용 추가
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
export PATH=$PATH:$JAVA_HOME/bin

# 변경사항 적용
source ~/.zshrc  # 또는 source ~/.bash_profile

# 확인
echo $JAVA_HOME

3. Spark 설치 및 설정

3.1 Spark 다운로드 및 설치

스파크 설치는 바이너리 패키지를 다운로드하고 압축 해제하는 방식으로 진행한다.

# 스파크 다운로드 (버전은 변경될 수 있음)
curl -O https://dlcdn.apache.org/spark/spark-3.3.2/spark-3.3.2-bin-hadoop3.tgz

# 압축 해제
tar -xvzf spark-3.3.2-bin-hadoop3.tgz

# 이동
sudo mv spark-3.3.2-bin-hadoop3 /opt/spark

3.2 Spark 환경변수 설정

Ubuntu/macOS 공통:

# .bashrc 또는 .zshrc 열기
nano ~/.bashrc  # Ubuntu
# 또는
nano ~/.zshrc  # macOS

# 파일 끝에 아래 내용 추가
export SPARK_HOME=/opt/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
export PYSPARK_PYTHON=python3

# 변경사항 적용
source ~/.bashrc  # Ubuntu
# 또는
source ~/.zshrc  # macOS

# 확인
echo $SPARK_HOME

3.3 Python 및 PySpark 설정

파이썬 환경이 필요하다면 설치하자:

# Ubuntu
sudo apt install python3 python3-pip -y

# macOS
brew install python3

# PySpark 설치
pip3 install pyspark

4. 필요한 커넥터 및 라이브러리 설치

스파크로 작업할 때는 보통 외부 데이터 소스와 연결이 필요하다. 여기서는 가장 많이 사용되는 커넥터 두 가지를 설치해보자.

4.1 PostgreSQL JDBC 드라이버 설치

# JDBC 드라이버 다운로드
curl -O https://jdbc.postgresql.org/download/postgresql-42.5.1.jar

# 스파크 jars 디렉토리로 이동
sudo mv postgresql-42.5.1.jar $SPARK_HOME/jars/

4.2 Google Cloud Storage 커넥터 설치

GCS를 사용한다면 다음 커넥터가 필요하다:

# GCS 커넥터 다운로드
curl -O https://storage.googleapis.com/hadoop-lib/gcs/gcs-connector-hadoop3-latest.jar

# 스파크 jars 디렉토리로 이동
sudo mv gcs-connector-hadoop3-latest.jar $SPARK_HOME/jars/

5. 스파크 로컬 실행 테스트

모든 설정이 끝났다면 간단한 테스트로 스파크가 제대로 설치되었는지 확인해보자:

5.1 Spark 셸 실행

pyspark

정상적으로 스파크 로고가 뜨고 셸이 실행되면 설치가 완료된 것이다!


6. 마무리

이렇게 로컬 환경에 스파크를 설치하고 기본적인 커넥터들을 추가해봤다.

다음 포스팅에서는 이렇게 구축한 로컬 환경에서 pyspark를 활용하여 json 데이터를 데이터프레임화하고, 필터링, 집계 함수 등을 활용하는 실제 데이터 처리 방법을 다뤄볼 예정이다.

화이팅 화이팅~!

"언제나, 이 세상 어딘가에 있는 나같은 사람을 위해 족적을 남긴다."
ㄱㅊㅁ_ㅇㅈ

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.