본문 바로가기
BigData 기술/Spark

jupyter 노트북에서 pyspark 사용하기

by 잇서니 2020. 4. 28.
반응형

 

윗 글에서 docker로 spark-hadoop-cluster를 구성했다.

여기에 jupyter 노트북을 붙여서 pyspark를 사용해본다. jupyter 노트북 역시 도커 컨테이너를 사용할 것이당.

 


 

1. jupyter용 도커 컨테이너 생성

docker run -it --name jupyter -h jupyter --net mycluster sunnydockerhub/sunny-spark-hadoop-cluster:latest

spark-hadoop-cluster 가 기본으로 구성된 이미지를 사용했다.

 

2. python3 & jupyter 설치

yum install -y python3-pip
pip3 install jupyter 

python3-pip은 다른 hadoop cluster 컨테이너에도 설치해야 한다.

 

3. 환경변수 세팅

vim ~/.bashrc
	export PYSPARK_PYTHON=python3
	export PYSPARK_DRIVER_PYTHON=jupyter
	export PYSPARK_DRIVER_PYTHON_OPTS='notebook --ip=172.17.0.2 --port=7777 --allow-root'
source ~/.bashrc

 

4. 컨테이너 jupyter 접속을 위해 방화벽 포트 오픈하기 (host에서 진행)

iptables -A DOCKER -p tcp --dport 7777 -j ACCEPT -d 172.17.0.2
iptables -t nat -A DOCKER -p tcp --dport 7777 -j DNAT --to 172.17.0.2:7777
iptables -t nat -A POSTROUTING -p tcp --dport 7777 -j MASQUERADE -s 172.17.0.2 -d 172.17.0.2

 

5. jupyter 토큰 설정 (초기 1번만 진행)

초기 실행 시, 토큰설정 내용이 나온다. 

pyspark --master yarn

 

http://<host-ip>:7777 로 접속해보자.

위에 나온 token을 입력하고, 비밀번호를 세팅한다.

 

YARN 리소스매니저 웹을 보면 pyspark shell (jupyter)가 구동되고 있는 걸 확인할 수 있다. http://<host-ip>:8088

jupyter를 실행함과 동시에 pyspark shell이 구동되는 것이다.

 

6. pyspark 프로그램 실행해보기

 

간단하게 Data Frame을 만들어보는 코드이다.

from pyspark.sql import SparkSession, SQLContext
from pyspark.sql.types import *
from pyspark.sql import functions as F

spark = SparkSession.builder.appName('company').getOrCreate()
sqlContext = SQLContext(spark)
data = sqlContext.createDataFrame([(1.449015065E9, 1.449015065E9), (0.0,1.449015065E9),(1.449015065E9,0.0),(0.0,0.0)],
                                  ["modified", "created"])
data.show()
data.printSchema()

test_df = data.select(data.modified).show()

 

7. jupyter 비밀번호 설정하기

아래 코드로 pyspark를 실행한다. 그러면 비밀번호 입력 칸이 나온다. 위에서 세팅한 비밀번호를 입력하면 해쉬값이 출력된다.

from notebook.auth import passwd
passwd()

 

해쉬값을 아래 설정파일에 입력하자.

vim /root/.jupyter/jupyter_notebook_config.py
	c.NotebookApp.password = ""
반응형

댓글