[7월프로젝트]하둡 클러스터 구축하기 (2) - Spark

임재규·2023년 7월 26일
0

프로젝트

목록 보기
3/11

Spark 설치 후 SparkSession 띄우기

이전에 작성했던 걸 보고 client에서 PySpark를 설치했다.
설치 후 datanode1~5에 spark 파일을 복사하였다.
Spark 설치하기 <-

spark_encore.tar.gz로 압축하여 각 노드에 ssh로 접속 후 압축 해제하는 과정을 진행했다.
scp ./spark_encore.tar.gz datanode1:/home/hadoop/
scp ./spark_encore.tar.gz datanode2:/home/hadoop/
scp ./spark_encore.tar.gz datanode3:/home/hadoop/
scp ./spark_encore.tar.gz datanode4:/home/hadoop/
scp ./spark_encore.tar.gz datanode5:/home/hadoop/


SPARK_HOME과 Jupyter를 웹브라우저에서 접속할 수 있도록 인터페이스 설정

vim .bashrc 수정

export SPARK_HOME="/home/hadoop/spark"
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook --ip=0.0.0.0'


주피터 노트북으로 스파크 세션이 뜨지 않는 오류

client:8888에 접속하여 jupyter notebook을 켜서
from pyspark.sql import SparkSession 명령어를 실행하면 실행이 되지 않는 현상 발생

  • 현상 이유 : excutor 5개가 뜨는 시간이 너무 오래 걸려 timeout 에러 발생

기존에 스파크 드라이버 메모리를 4096 MB로 설정했었는데, 8GB로 늘리고, EXCUTOR_MEMORY도 2048 MB에서 4GB로 늘렸다.

pyspark --master yarn --num-executors 1로 줄여서 실행하여 보니 실행되었다.

설정을 그대로 하여

pyspark --master yarn --num-executors 5도 실행해봤다.

나중에 알아본 결과 이건, python3으로 단일노드로 실행한 것이었다.
내가 원하는 것은 서버를 구성한 클러스터를 모두 사용하여 분산 처리를 하려고 했던 것이었다.
pyspark 커널을 띄워 pyspark를 제대로 사용하는 건 다음 포스트에 작성하려고 한다.


추후에 할 일

  • 현재 프로젝트 진행 중인 데이터를 hdfs에 담아서 spark로 병렬처리해보기
  • 온프레미스 환경으로 구축된 클러스터를 작업 중인 컴퓨터와 같은 와이파이를 사용하지 않아도 접속가능하도록 만들기 (open VPN)
profile
공부 기록

1개의 댓글

comment-user-thumbnail
2023년 7월 26일

감사합니다. 이런 정보를 나눠주셔서 좋아요.

답글 달기