1. Spark 설치
먼저 scala를 설치하여 주자. 우분투에서 다음 코드를 작성하면 된다.
$ sudo apt-get install scala
이후 scala를 실행하여 보자
$ scala
이제 scala의 환경변수를 설정해 줄 것이다. 설정 하는 방법은
‘WSL을 활용한 Rstudio-server 설치 — 5. Rjava설치’ 의 java 환경변수 설치와 동일하고 scala의 환경변수 코드는 다음과 같다.
export SCALA_HOME=/usr/bin/scala
export PATH=$SCALA_HOME/bin:$PATH
다음으로 spark를 설치하자. spark 홈페이지에서 원하는 버전을 선택한 후 다운로드 url을 알아내자.
버전을 선택하고 3번째 경로를 들어가면 다음과 같은 화면이 나오고 다음 주소를 복사하여 다운 받아주면 된다.
필자는 2.4.5 버전을 다운받았고 코드는 다음과 같다.
$ wget http://mirror.navercorp.com/apache/spark/spark-2.4.5/spark-2.4.5-bin-hadoop2.7.tgz
이제 다운받은 spark의 압축파일을 풀어주면 spark 설치는 완료된다.
$ tar xvf spark-2.4.5-bin-hadoop2.7.tgz
그냥 사용해도 문제는 없지만 폴더 명이 너무 길고 복잡하기에 필자는 spark의 위치를 /usr/spark 라는 디렉토리로 옮겨주었다.
$ sudo mv spark-2.4.5-bin-hadoop2.7/ /usr/spark
이제 spark도 환경변수를 지정해주어야 한다. 방법은 당연히 java나 scala와 동일하고 코드는 다음과 같다.
export SPARK_HOME=/usr/spark
export PATH=$SPARK_HOME/bin:$PATH
이제 spark가 잘 설치되었는지 실행 후 명령어를 하나 날려보자. scala를 설치 후 spark-shell을 실행하였으므로 scala의 언어를 사용해야 한다.
$ /usr/spark/bin/spark-shellprintln("spark is running")
spark가 잘 설치되었고 실행까지 잘 되는 것을 볼 수 있다!
2. Jupyter notebook에서 pyspark활용
ubuntu에는 기본적으로 python3.6.9 버전이 내장되어있다. 3.6 버전이 기본 python으로 지정되어있지 않으므로 이를 기본으로 지정해주도록 하자.
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 9
이제 jupyter notebook을 설치하자. jupyter notebook을 설치하기 위해 먼저 pip3부터 설치해야한다.
$ sudo apt install python3-pip$ pip3 install jupyter
jupyter를 설치 후 ubuntu를 재시작해주면 jupyter notebook 명령어로 jupyter notebook을 실행할 수 있다.
실행되면 브라우저를 통하여
http://localhost:8888/?token=shdlkglahdlfa…..
를 전부 복사하여 주소창에 입력 후 접속하면 jupyter notebook이 나타난다.
이제 jupyter에서 pyspark를 실행할 수 있도록 하자. 일단 ubuntu에서 python을 실행한 뒤 비밀번호부터 설정해주자.
$ python>>> from notebook.auth import passwd
>>> passwd()
비밀번호를 설정하면 ‘sha1:????????????????’ 가 나타나는데 이를 전부 복사해두자.
이제 python에서 나온 후 jupyter 설정 파일을 생성하고 다음 코드를 아래에 추가해주자.
$ jupyter notebook --generate-config$ sudo vi ~/.jupyter/jupyter_notebook_config.pyc.NotebookApp.allow_origin = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.password = 'passwd()에서 복사한 비밀번호'
입력 후 esc, :wq 엔터 로 저장하며 빠져나온 뒤, pyspark가 jupyter notebook으로 실행되도록 환경변수를 설정하여 주자.
$ sudo nano /etc/profileexport PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'
이제 ubuntu를 재시작한 뒤 pyspark 명령어로 pyspark를 실행하자.
$ pyspark
pyspark가 실행되면 인터넷 브라우저에 ‘localhost:8888’ 로 접속하면 패스워드를 입력하라는 창이 나타나고 이전에 python 로컬에서 passwd() 로 설정했던 비밀번호를 입력하면 우리가 잘 아는 jupyter notebook이 나타난다.
이제 python창을 열어 spark가 잘 연동되어있는지 sc 명령어로 확인해보자
sc
잘 연동되었다!
후기
pyspark를 jupyter와 연결하면서 python버전 문제나 scala, spark 환경변수 설정등 처음 해보는 것이 많아서 시간이 꽤 걸렸다. 정말 처음보는 에러도 많이 봤던것같고…. 이후에는 pyspark를 이용하여 이미지분석을 시도해 보려고 한다.