간단한 기능 테스트를 위한 Spark Standalone 설치 방법을 설명한다.
Spark 에서 yarn 과 HDFS 를 사용할 수 있도록 하기 위해, Hadoop standalone 설치 방법을 참고한다.
localhost 에 설치할 것이고, 각종 옵션 등의 설명은 없다.
오로지 기능 테스트를 위해 간단하게만 설치한다.
docker 를 이용하면 쉽게 설치할 수 있지만, 여기서는 그냥 local 에 곧바로 설치한다.
< 환경 >
Ubuntu 20.04.2 LTS 64비트
java 가 local 에 1.8 이상 버전으로 설치되어 있어야 한다.
설치하는 dir 는 /home/eye/standalone 이라고 하자.
< Spark Standalone >
Spark download : spark.apache.org/downloads.html
Downloads | Apache Spark
Download Apache Spark™ Choose a Spark release: Choose a package type: Download Spark: Verify this release using the and project release KEYS. Note that, Spark 2.x is pre-built with Scala 2.11 except version 2.4.2, which is pre-built with Scala 2.12. Spar
spark.apache.org
원하는 버전의 binary 를 다운받는다.
나의 경우 spark-3.1.1-bin-hadoop3.2 버전을 받으려고 한다.
wget https://downloads.apache.org/spark/spark-3.1.1/spark-3.1.1-bin-hadoop3.2.tgz --no-check-certificate |
압축을 해제한다.
tar zxvf spark-3.1.1-bin-hadoop3.2.tgz |
압축이 풀리면 spark-3.1.1-bin-hadoop3.2 dir 가 생긴다.
이제부터 Spark home(SPARK_HOME) 의 path 는 /home/eye/standalone/spark-3.1.1-bin-hadoop3.2 이다.
아래 설명부터, SPARK_HOME 이라고 된 부분을
/home/eye/standalone/spark-3.1.1-bin-hadoop3.2 로 대체해서 생각하면 된다.
SPARK_HOME/conf 로 이동한다.
다음 명령어를 통해 사용할 conf 의 접미사를 없애준다.
mv spark-env.sh.template spark-env.sh mv spark-defaults.conf.template spark-defaults.conf |
spark-env.sh 의 마지막에 다음의 내용을 추가한다.
아래 HADOOP 관련 path 가 왜 이렇게 나왔는지는 HADOOP standalone 설치 글 을 참고
export HADOOP_CONF_DIR=/home/eye/standalone/hadoop-3.3.0/etc/hadoop |
여기서 아래 이탤릭체인것은 선택사항임. 해도 되고 안 해도 되고
SPARK_HOME 에 spark-events dir 를 생성한다.
이는 spark event log 등을 저장하기 위한 path 이다.
굳이 아래 경로로 만들 필요는 없고, 설치하는 사람 마음대로 지정하면 된다.
mkdir SPARK_HOME/spark-events |
spark-defaults.conf 의 마지막에 다음의 내용을 추가한다.
spark.master yarn spark.eventLog.enabled true spark.eventLog.dir file:SPARK_HOME/spark-events spark.history.fs.logDirectory file:SPARK_HOME/spark-events |
참고로 위의 spark.eventLog.dir 와 spark.history.fs.logDirectory path 는
file 이 아니라 hdfs 로 지정해도 된다.
다음 명령어를 통해 spark-shell 을 실행시켜본다.
실행 전 hdfs 와 yarn 이 실행중이어야 한다.
SPARK_HOME/bin/spark-shell --master yarn |
spark 실행 명령어 사용시 binary 를 직접 지정하여 사용한다.
왜냐면 여기선 bin path 지정을 하지 않았으니까(테스트 용도)
간단하게 df 를 통해 hdfs 내의 데이터를 읽어본다.
val df = spark.read.text("/hdfs/data/path.txt") df.show(5) |
< 참고 >
file:SPARK_HOME/spark-events 를 생성하지 않은 상태로 spark-shell 를 실행시키면
아래 exception 이 뜬다.
21/03/26 09:39:40 ERROR SparkContext: Error initializing SparkContext. java.io.IOException: Incomplete HDFS URI, no host: file:SPARK_HOME/spark-events |
'Spark' 카테고리의 다른 글
[Spark] json string 값을 갖는 column 에서 json 값 추출하는 방법 + 삽질의 결과 (0) | 2021.04.29 |
---|---|
[PySpark] Python DataFrame 다양한 연산 모음 (0) | 2021.04.05 |
[Spark] 디버깅, 로그 보는 방법 링크(영어) (0) | 2021.03.24 |
[Spark] history ui port 바꾸는 방법 (0) | 2020.08.13 |
[Spark] Json parser 예제 (0) | 2020.08.12 |