서버 운영 관리 [ Tip ]

Jupyter Notebook 설치 및 환경설정

 

 

 

Jupyter Notebook은 데이터 분석, 머신 러닝, 데이터 시각화 등 다양한 데이터 과학 및 프로그래밍 작업을 위한 대화형 개발 환경입니다.

비영리 단체 Project Jupyter에서 제작한 제품 중 하나로, 주로 Python을 기반으로 하지만 다양한 프로그래밍 언어를 지원하여 실시간으로 상호 활동적으로 데이터를 확인할 수 있습니다.

 

iwinv GPU 운영체제 서비스에서는 Jupyter notebook을 통해 작성된 코드를 다양하게 활용할 수 있도록

운영체제 별 Deep Learning 패키지가 포함된 이미지를 바로 사용하도록 지원하고 있습니다.

 

본 매뉴얼에서는 Jupyter notebook 설치 명령어를 소개합니다. 

 

 


 

 

pip and Python 설치 

 

#  apt-get -y install python3 python3-pip python-dev-is-python3

# python –version

Python 3.10.12

# pip -V

pip 24.0 from /usr/local/lib/python3.10/dist-packages/pip

(python 3.10)

# pip install –upgrade pip

Collecting pip

  Downloading pip-24.0-py3-none-any.whl (2.1 MB)

     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 15.7 MB/s eta 0:00:00

Installing collected packages: pip

  Attempting uninstall: pip

    Found existing installation: pip 22.0.2

    Not uninstalling pip at /usr/lib/python3/dist-packages, outside environment /usr

    Can't uninstall 'pip'. No files were found to uninstall.

Successfully installed pip-24.0

Jupyter notebook 설치

# pip install jupyter

#  jupyter --version

Selected Jupyter core packages...

IPython          : 8.21.0
ipykernel        : 6.29.2
ipywidgets       : 8.1.2
jupyter_client   : 8.6.0
jupyter_core     : 5.7.1
jupyter_server   : 2.12.5
jupyterlab       : 4.1.2
nbclient         : 0.9.0
nbconvert        : 7.16.1
nbformat         : 5.9.2
notebook         : 7.1.0
qtconsole        : 5.5.1
traitlets        : 5.14.1

 

 

root 권한에서 작업시에는 아래처럼 메세지가 출력되며 –allow-root 옵션추가

# jupyter notebook
[I 15:55:18.670 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
[C 15:55:18.848 NotebookApp] Running as root is not recommended. Use –allow-root to bypass.

 

# jupyter notebook –allow-root

 

서비스 프로세서가 foreground 형태로 실행되며 세션이 종료되지 않게 backgroud “&” 혹은 nohup 옵션등을 주어 실행한다.

# jupyter notebook –allow-root &

 

 

Jupyter 접속

기본포트는 8888 이며 로컬이 아닌 원격에서 웹을 통해 접속하려면 아래와 같은 방법으로 가능합니다. 

# netstat -anlp |grep 8888

tcp 0 0 127.0.0.1:8888 0.0.0.0:* LISTEN 19558/python

 

1. –ip 옵션활용

# ifconfig ens3
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
inet 10.1.0.7 netmask 255.255.0.0 broadcast 10.1.255.255
inet6 fe80::f816:3eff:fe47:2c7a prefixlen 64 scopeid 0x20
ether fa:16:3e:47:2c:7a txqueuelen 1000 (Ethernet)
RX packets 27858 bytes 150481517 (150.4 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16641 bytes 2275966 (2.2 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

 

# jupyter notebook –allow-root –ip 10.1.0.7 &

 

# netstat -anlp |grep 8888

tcp 0 0 10.1.0.7:8888 0.0.0.0:* LISTEN 19747/python

 

 

2. 환경설정 config 파일 수정

# jupyter notebook –allow-root –generate-config

Writing default config to: /root/.jupyter/jupyter_notebook_config.py


# vim /root/.jupyter/jupyter_notebook_config.py

……………………………………
## The IP address the notebook server will listen on.
c.NotebookApp.ip = ‘10.1.0.7’
……………………………………



# jupyter notebook –allow-root –config /root/.jupyter/jupyter_notebook_config.py & 

 

원격에서 접속할수 있는 환경설정은 마무리 되며, 

다음은 웹 브라우저를 통해 접근하시기 바랍니다. 

http://<서버아이피주소>:8888

Password or token 창에는 Jupyter 서버를 실행시킬때 나오는 token 값을 넣어서 진행하시기 바랍니다. 

 

 

 

토큰을 입력하고 접근하면 아래와 같은 창이 확인되며, 

환경설정파일을 통해 서비스를 구동시켰다면 jupyter_notebook_config.py 등이 Files 목록에 올라온 모습을 확인하실 수 있습니다. 

 

 

python3 추가

– python 3.x = pip3
– python 2.7 = pip

# apt install python3-pip python3-dev

# python3 –version
Python 3.6.9

 

# pip3 install –upgrade pip
# pip3 install virtualenv
# pip install jupyter

 

 

부팅시 자동실행을 위해 service 등록

jupyter.service 파일생성

# vim /etc/systemd/system/jupyter.service

[Unit]
Description=Jupyter Notebook Server 

[Service] 
Type=simple 
PIDFile=/run/jupyter.pid 
User= 
ExecStart=/home//.local/bin/jupyter-notebook 
WorkingDirectory=/your/working/dir

[Install]
WantedBy=multi-user.target

 

# systemctl daemon-reload

# systemctl enable jupyter.service

# systemctl start jupyter.service

# systemctl status jupyter.service

 


 

# jupyter-notebook –h

usage: jupyter-notebook [-h] [–log-level NOTEBOOKAPP.LOG_LEVEL]

                                     [–config NOTEBOOKAPP.CONFIG_FILE]
                                     [–ip NOTEBOOKAPP.IP] [–port NOTEBOOKAPP.PORT]
                                     [–port-retries NOTEBOOKAPP.PORT_RETRIES]
                                     [–transport KERNELMANAGER.TRANSPORT]
                                     [–keyfile NOTEBOOKAPP.KEYFILE]
                                     [–certfile NOTEBOOKAPP.CERTFILE]
                                     [–client-ca NOTEBOOKAPP.CLIENT_CA]
                                     [–notebook-dir NOTEBOOKAPP.NOTEBOOK_DIR]
                                     [–browser NOTEBOOKAPP.BROWSER]
                                     [–pylab [NOTEBOOKAPP.PYLAB]]
                                     [–gateway-url GATEWAYCLIENT.URL] [–debug]
                                     [–generate-config] [-y] [–no-browser] [–no-mathjax]
                                     [–allow-root] [–script] [–no-script]

 

optional arguments:

   -h, –help show this help message and exit
   --log-level NOTEBOOKAPP.LOG_LEVEL
   --config NOTEBOOKAPP.CONFIG_FILE
   --ip NOTEBOOKAPP.IP
   --port NOTEBOOKAPP.PORT
   --port-retries NOTEBOOKAPP.PORT_RETRIES
   --transport KERNELMANAGER.TRANSPORT
   --keyfile NOTEBOOKAPP.KEYFILE
   --certfile NOTEBOOKAPP.CERTFILE
   –client-ca NOTEBOOKAPP.CLIENT_CA
   –notebook-dir NOTEBOOKAPP.NOTEBOOK_DIR
   –browser NOTEBOOKAPP.BROWSER
   –pylab [NOTEBOOKAPP.PYLAB]
   –gateway-url GATEWAYCLIENT.URL
   –debug
   –generate-config
   -y, –y
   –no-browser
   –no-mathjax
   –allow-root
   –script
   –no-script