Jupyter Notebook — это приложение для создания книг и документов из вычислительного материала (в формате .ipynb). Его установка и запуск должны выполняться от пользователя с правами, отличными от root. В данной инструкции мы будем выполнять часть операций от последнего, остальное — от пользователя jupyter. Руководство подходит для Linux CentOS версий 7 и 8.
Перед установкой можно ознакомиться с приложением онлайн на официальном сайте.
Выполнение установки с последующим запускомАвтоматический запуск в качестве службы
От пользователя root устанавливаем необходимые компоненты:
# yum install gcc python3-devel python3-pip kernel-headers
* где:
Создаем пользователя, от которого будем запускать Jupyter Notebook:
# useradd jupyter -m
* наш пользователь будет с именем jupyter. Также мы сразу создаем для него домашний каталог.
Создаем правило в брандмауэре для подключения к Jupyter Notebook по сети:
# firewall-cmd —permanent —add-port=8080/tcp
* предполагается, что наш сервис будет запускаться на порту 8080.
Применяем настройки firewalld:
# firewall-cmd —reload
Заходим в систему под созданным пользователем jupyter:
# su — jupyter
Выполним установку питон-приложения jupyter:
$ pip3 install —user jupyter
Проверить корректность установки можно командой:
$ jupyter —version
Мы должны увидеть версию установленного приложения, например:
jupyter core : 4.7.0jupyter-notebook : 6.1.5qtconsole : 4.7.7ipython : 7.16.1ipykernel : 5.3.4jupyter client : 6.1.7jupyter lab : not installednbconvert : 6.0.7ipywidgets : 7.5.1nbformat : 5.0.8traitlets : 4.3.3
* обратите внимание, что в списке есть jupyter lab, который не установлен. При желании, его устанавливаем командой: pip3 install —user jupyterlab.
Создаем конфигурационный файл для Jupyter Notebook:
jupyter notebook —generate-config
Он должен появиться в домашней директории пользователя jupyter:
Writing default config to: /home/jupyter/.jupyter/jupyter_notebook_config.py
Задаем пароль для входа в веб-панель:
$ jupyter notebook password
Дважды вводим пароль — система создаст для него хэш и сохранить в домашней папке пользователя:
Enter password: Verify password: [NotebookPasswordApp] Wrote hashed password to /home/jupyter/.jupyter/jupyter_notebook_config.json
Запускаем приложение:
$ jupyter notebook —no-browser —ip=0.0.0.0 —port=8080
* в данном примере мы запускаем jupyter notebook на порту 8080 и на всех сетевых интерфейсах.
Открываем браузер и переходим по пути http://<IP-адрес компьютера с jupyter>:8080 — должна открывать страница с формой ввода пароля, который мы создавали ранее — вводим его:
Откроется страница Jupyter Notebook:
Если jupyter notebook не открывается в браузере, запускаем другую консоль на компьютере с приложением и выполняем команду:
ss -tunlp | grep 8080
Мы должны увидеть что-то на подобие:
tcp LISTEN 0 128 0.0.0.0:8080 0.0.0.0:* users:((«jupyter-noteboo»,pid=8510,fd=5))
В противном случае проверяем, что у нас запустилось приложение. Но если команда ss -tunlp | grep 8080 показала наличие сервиса, который слушает на порту 8080, еще раз проверяем настройки брандмауэра:
firewall-cmd —list-all
Мы должны увидеть правило:
… ports: 8080/tcp …
После окончания работы можно выходить из-под пользователя jupyter:
Мы установили и запустили наше приложение из консоли. Однако, если мы хотим, чтобы Jupyter Notebook запускался как сервис автоматически, создаем юнит в systemd:
vi /etc/systemd/system/jupyter.service
[Unit]Description=Jupyter Notebook ServiceAfter=network.target
[Service]User=jupyterGroup=jupyterType=simpleWorkingDirectory=/home/jupyterExecStart=/home/jupyter/.local/bin/jupyter notebook —no-browser —ip=0.0.0.0 —port=8080ExecReload=/bin/kill -HUP $MAINPIDRestart=on-failure
[Install]WantedBy=multi-user.target
Перечитываем конфигурацию systemd:
systemctl daemon-reload
Разрешаем автозапуск:
systemctl enable jupyter
Отключаем SELinux:
setenforce 0
sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config
Стартуем сервис:
systemctl start jupyter
Проверяем работоспособность:
systemctl status jupyter
Опять открываем браузер и переходим на страницу http://<IP-адрес компьютера с jupyter>:8080 — мы должны увидеть страницу авторизации.
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies