2022. 8. 5. 23:56ㆍData Engineering/Spark
환경
- Mac, M1
1. 다운로드
https://archive.apache.org/dist/spark/
위 사이트에서 원하는 버전을 다운로드 하면 된다. 단, 원하는 버전의 패키지 타입은 Spark 를 Yarn 에서 실행할 거라면 미리 Hadoop 버전을 고려해서 선택해야 한다.
https://spark.apache.org/downloads.html
위 사이트를 참고하여 Spark 3.3.0 을 예시로 들어보겠다.
위 사이트 화면에서 2. Choose a package type: 을 하나씩 클릭해보면 3. Download Spark: 에서 보이는 파일명이 각각 달라지는 걸 확인할 수 있다.
파일에 따라 Hadoop runtime 이 포함되어 있냐 아니냐에 따라 나뉜다. Hadoop runtime 이 내장되어 있는 파일명이 spark-X.X.X-bin-hadoopX.tgz 형태이고, Hadoop runtime 을 포함하지 않는 파일명이 spark-X.X.X-bin-without-hadoop.tgz 형태이다. Hadoop runtime 이 내장되어 있는 파일은 job 이 Hadoop Yarn Cluster 에 제출될 때 jar 충돌을 방지하기 위해 Yarn 의 classpath 를 Spark 에 두지 않는다고 한다. Hadoop runtime 이 내장되어 있지 않은 파일은 Yarn 의 classpath 를 Spark 에 둬서 Hadoop runtime 을 얻는다고 한다. 완벽히 이해되는 부분은 아니라서 일단 설명만 적어 놓겠다.
설치되어 있는 Hadoop 버전에 따라 선택해서 다운로드 하면 된다.
spark-3.3.0-bin-hadoop3.tgz 파일은 Hadoop 3.3 이상이면 되고,
spark-3.3.0-bin-hadoop2.tgz 파일은 Hadoop 2.7 이어야 한다.
spark-3.3.0-bin-without-hadoop.tgz 파일은 어떠한 Hadoop 버전도 상관 없다.
참고:
https://spark.apache.org/docs/latest/running-on-yarn.html#preparations
필자는 기존 설치되어 있는 하둡이 Hadoop 3.3.3 이므로 spark-3.3.0-bin-hadoop3.tgz 를 다운로드 하겠다. 편의상 wget 을 사용한다.
$ wget https://archive.apache.org/dist/spark/spark-3.3.0/spark-3.3.0-bin-hadoop3.tgz
2. 압축 해제
# 압축 해제
$ tar zxvf spark-3.3.0-bin-hadoop3.tgz
# 다운로드 한 압축 파일 삭제(선택)
$ rm -rf spark-3.3.0-bin-hadoop3.tgz
3. 원하는 경로로 이동 및 심볼릭 링크 설정
# 압축 해제한 spark 파일을 원하는 경로로 이동시키기
$ mv spark-3.3.0-bin-hadoop3 /Users/stopleaf/dev/spark-3.3.0-bin-hadoop3
# 심볼릭 링크 설정
$ ln -s /Users/stopleaf/dev/spark-3.3.0-bin-hadoop3 /Users/stopleaf/dev/spark
경로는 원하는 대로 설정하면 된다.
4. 설정
$ vi ~/.zshrc
# SPARK_HOME 설정
export SPARK_HOME="/Users/stopleaf/dev/spark"
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
# spark 관련 alias 설정(선택)
alias spark-shell="/Users/stopleaf/dev/spark/bin/spark-shell"
alias spark-submit="/Users/stopleaf/dev/spark/bin/spark-submit"
$ source ~/.zshrc
* 하둡과의 연동은 다른 글에서 다룬다.
5. 테스트