[Jupyter]Centosの下にJupyterをデプロイする[オリジナル]

1.環境を準備します

  • セント7.6
  • Python 3.7
  • Nginx

注:Jupyterデプロイメントは、root以外のユーザー(ここではabcユーザー)の下にあります


2.手順

1.インストール

pip3 install jupyter

インストールが完了したら、最初にテストできます。

jupyter notebook --no-browser

2.構成ファイルを生成します

構成ファイルを生成します。

jupyter-notebook --generate-config

構成ファイルは、デフォルトで、現在のユーザーのホームディレクトリの下の.jupyterディレクトリに生成されます


ここにある私の構成ファイルのアドレス
/home/abc/.jupyter/jupyter_notebook_config.py


注:構成ファイルの生成時にエラーが報告される場合があります。

PermissionError: [Errno 13] Permission denied: '/home/abc/.jupyter'

理由:これは、現在のユーザーが/home/abc/.jupyterを作成するための十分な権限を持っていないためです

解決策:
rootユーザーの下の/ home / abc /の下に新しい.jupyterディレクトリーを作成し、現在のユーザーにこのディレクトリーの操作許可を与える必要があります。


3.Jupyterのデフォルトの作業ディレクトリを作成します

これは次のように設定されます:
/ home / abc / jupyter_dir

mkdir -p /home/abc/jupyter_dir
chown -R abc:abc /home/abc/jupyter_dir/

注:現在のユーザーには、ディレクトリを操作するための権限が必要です


4.構成ファイルを変更します

構成ファイル
vim/home/abc/.jupyter/jupyter_notebook_config.pyを変更します

着替える:

c.NotebookApp.ip = '0.0.0.0'                    # 注意:不想要其他机器访问,可以设置为127.0.0.1
c.NotebookApp.password = ''                     # 密码(加salt)
c.NotebookApp.open_browser = False              # 启动不打开浏览器
c.NotebookApp.port = 8888                       # 对外提供访问的端口
c.NotebookApp.notebook_dir = '/home/abc/jupyter_dir'   # 默认工作目录
c.NotebookApp.allow_root = True                        # 允许root用户执行,root用户下必须

注:パスワードを使用しない場合、デフォルトではトークンを使用してログインします


注:パスワードを指定する場合は、python/IPythonシェルでパスワードを生成する必要があります

from notebook.auth import passwd
passwd()

パスワードを入力すると、saltを含むパスワード文字列が生成され、c.NotebookApp.passwordに入力します。


5.実行

jupyterノートブック


バックグラウンドで実行する(/ tmp / jupyterディレクトリを事前に作成する必要があり、現在のユーザーはこのディレクトリの操作権限を持っています)

nohup jupyter notebook > /tmp/jupyter/jupyter.log 2>&1 &

注:実行中は、次のエラーが発生する可能性があります。

PermissionError: [Errno 13] Permission denied: '/home/abc/.local'

理由:現在のユーザーの権限が不十分です

解決策:/ home / abcの下に新しい.localディレクトリを作成する必要があり、現在のユーザーにはこのディレクトリへの操作権限があります


注:他のマシンがアクセスできない場合は、ファイアウォールに問題がある可能性があります。ファイアウォールを設定するか、ファイアウォールをオフにする必要があります


6.SystemdがJupyterを引き継ぎます

Jupyterの動作をより適切に監視し、障害後に再起動できるようにするには、監視ソフトウェアを使用してJupyterを起動する必要があります。ここでは、システムに付属のSystemdを使用します。


ここにJupyterの起動スクリプトを書いた後、Systemdが起動スクリプトを引き継いでいます。Systemdを使ってJupterを引き継いでみませんか?これは、Jupyterの起動プロセスをログに記録できないためです。


最初に起動スクリプトを記述します:
vim /home/abc/bin/jupyter.sh

#!/bin/bash

/usr/local/python3/bin/jupyter-notebook --no-browser > /tmp/jupyter/jupyter.log 2>&1

そして、スクリプトには実行権限を与える必要があります

chmod +x /home/abc/bin/jupyter.sh

サービスを作成する

vim /usr/lib/systemd/system/jupyter.service

[Unit]
Description=Jupyter-Notebook

[Service]
User=abc
Group=abc
Type=simple
ExecStart=/usr/bin/nohup /home/abc/bin/jupyter.sh &

[Install]
WantedBy=multi-user.target

Restart=on-failure
RestartSec=10

新しいサービスをロードし、jupyterを起動して起動します

systemctl daemon-reload
systemctl enable jupyter
systemctl start jupyter

ここに到達すると、リモートマシンはLinuxのJupyterにアクセスできますが、セキュリティのために、Nginxを前面にぶら下げてから、ドメイン名に移動することをお勧めします。


7. Nginx

参照:https://segmentfault.com/a/1190000016627630


注:JupyterはWebSocketプロトコルを使用するため、NginxはWebSocketをサポートするように構成する必要があります。

新しい
confvim/etc/nginx/conf.d/jupyter.test.com.confを作成します

server {
    server_name jupyter.test.com *.jupyter.test.com;
    listen 80;
    location / {
        proxy_pass http://127.0.0.1:8888;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_set_header   Host              $http_host;
        proxy_set_header   X-Real-IP         $remote_addr;
        proxy_set_header   X-Real-Scheme     $scheme;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # WebSocket support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_read_timeout 120s;
        proxy_next_upstream error;
    }    
}

Nginxを更新する

nginx -s reload

外部マシンがホストを設定した後、ブラウザはjupyter.test.comにアクセスできます


9.プラグインをインストールします

一般的なJupyterプラグインをインストールします

pip3 install RISE
pip3 install autopep8
jupyter-nbextension install rise --py --sys-prefix
jupyter-nbextension enable rise --py --sys-prefix

jupyterノートブックをチェックインします。

Hinterland
Nbextensions edit menu item
Split Cells Notebook
Autopep8                  # 需要 pip install autopep8
Nbextensions dashboard tab
Snippets
Table of Contents (2)
RISE                       # 需要 pip install RISE

おすすめ

転載: blog.csdn.net/jiandanokok/article/details/105478682