데이터분석

(pyspark+jupyterlab) Ubuntu내 분석 환경 설정

직장인B 2022. 12. 3. 01:23
  • ubuntu 20.04 (multipass)
  • python 3.8.9
  • pyspark 3.3
wget https://dlcdn.apache.org/spark/spark-3.3.1/spark-3.3.1-bin-hadoop3.tgz

Ubuntu 가상환경 셋팅

multipass launch -c 2 -m 2G --name machine focal

 

Pyspark 다운로드

spakr 바이너리 파일을 다운로드 받는다. 여기엔 pyspark를 구동하는 라이브러리들이 모두 모아져 있다. 

https://www.apache.org/dyn/closer.lua/spark/spark-3.3.1/spark-3.3.1-bin-hadoop3.tgz

wget https://dlcdn.apache.org/spark/spark-3.3.1/spark-3.3.1-bin-hadoop3.tgz
tar -xvzf spark-3.3.1-bin-hadoop3.tgz

 

Pip 설치

ubuntu20.04에는 python3.8.9가 기본으로 깔려있다. 다만 pip는 없어서 별도로 설치해야한다. 

sudo apt-get update
sudo apt-get install pip

 

Jupyterlab 설치

대게 파이썬 가상환경을 구축해 설치하는게 일반적이지만 우분투 자체가 가상 머신이니 시스템에 바로 설치하였다.

pip3 install --upgrade jinja2
pip3 install jupyterlab

export PATH=$PATH:/home/ubuntu/.local/bin

## jupyter 구동
jupyter-lab --ip "0.0.0.0"

아래의 경로에 가면 python3 이라는 디렉토리가 있고 그 안에 kernel.json이 있다. python3/kernel.json 은 jupyter가 사용하는 python3 커널에 대한 정의서다. 이처럼 아래의 경로에 pyspark 커널에 대한 정의를 해놓으면 된다. 

/home/ubuntu/.local/share/jupyter/kernels
## /home/ubuntu/.local/share/jupyter/kernels/pyspark/kernel.json
{
 "argv": [
  "python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "Pyspark 3.3.1 (ipykernel)",
 "language": "python",
 "metadata": {
  "debugger": true
 },
 "env": {
        "SPARK_HOME": "/home/ubuntu/spark-3.3.1-bin-hadoop3",
        "PYTHONPATH": "/home/ubuntu/spark-3.3.1-bin-hadoop3/python/:/home/ubuntu/spark-3.3.1-bin-hadoop3/python/lib/py4j-0.10.9.5-src.zip:/home/ubuntu/spark-3.3.1-bin-hadoop3/python/lib/pyspark.zip",
        "PYSPARK_PYTHON": "/usr/bin/python3",
        "PYSPARK_DRIVER_PYTHON": "jupyter"
 }
}

커널 정의서를 잘 작성했다면 아래처럼 Notebook 상에 해당 커널에 대한 표시가 생겨난다 !

Pyspark 커널에 들어가면 정상적으로 pyspark 를 import해서 사용할 수 있다~!