환경
python
을 사용해서spark
를 활용하기 위해 사전 준비 작업을 포스팅합니다.
여러 블로그에서spark
자체의jupyter-notebook
기능을 활용해서 하는 것들을 보여줬었습니다.
저는spark
를 활용할 수 있는 가상환경을 만들고 이를jupyter-notebook
kernel 로 올려서 사용할 생각입니다.- 이전과 마찬가지로 AWS, ubuntu 14.04 에서 진행합니다.
Java, Scala, Sparks 설치
scala
,java
설치 & 버전 확인합니다.spark
는scala
기반의 언어로 돌아가기 때문에 먼저 설치해주어야 합니다.
$ sudo apt-get install default-jre scala
$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-0ubuntu0.16.04.2-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
$ scala -version
Scala code runner version 2.11.6 -- Copyright 2002-2013, LAMP/EPFL
Apache Spark
설치
tar 파일을 다운받아~/download
에 압축을 해제합니다.
가상환경 설정
spark
라는 이름으로 가상환경을 만들고 적용합니다.
$ pyenv virtualenv 3.6.4 sparks
$ pyenv virtualenv sparks
pyspark
와findspark
를 설치합니다.pyspark
는spark
의 python API 라고 볼 수 있습니다.
커널 설정을 위한ipykernel
도 함께 설치해줍니다.
(sparks)$ pip install pyspark
(sparks)$ pip install findspark
(sparks)$ pip install ipykernel
(sparks)$ source deactivate
- 위 라이브러리를 설치후에
spark
환경변수를.bashrc
에 작성합니다.
export PYENV_ROOT="$HOME/.pyenv"
export SPARK_HOME="/home/ubuntu/download/spark-2.2.1-bin-hadoop2.7"
export PYTHONPATH="$SPARK_HOME/python:$PYTHONPATH"
export PATH="$SPARK_HOME/bin:$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
- 마지막으로,
sparks
커널을 생성하여jupyter-notebook
에 적용시킵니다.
(sparks)$ python -m ipkernel installl --user --name=sparks
결과
- 제대로 적용 되었다면
jupyter-notebook
에 kernel이 표시됩니다.
Reference
http://jmedium.com/pyspark-in-python/
https://blog.sicara.com/get-started-pyspark-jupyter-guide-tutorial-ae2fe84f594f
https://www.dezyre.com/apache-spark-tutorial/pyspark-tutorial
접속할때마다 .bash_rc 가 적용이 안되서 가상환경 내에서 python, pip 가 가상환경으로 실행 되지 않는 경우가 있음.
ubuntu설정에서 .bash_profile 또는 .bash_rc 가 항상 적용 되도록 설정해야 한다.
Congratulations @rawoon89! You received a personal award!
Click here to view your Board
Congratulations @rawoon89! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!