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/
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)
감사합니다. 이런 정보를 나눠주셔서 좋아요.