Многопользовательская среда для Jupyter Notebooks
JupyterHub — это многопользовательская платформа для работы с Jupyter Notebooks. Данный бандл предоставляет готовое решение для развертывания JupyterHub с аутентификацией через PAM (login) и поддержкой JupyterLab по умолчанию.
Установка производится в изолированное Python виртуальное окружение (venv), что обеспечивает независимость от системных пакетов и упрощает управление зависимостями.
JupyterHub поддерживает работу с множеством языков программирования через систему ядер (kernels). Пользователи могут устанавливать и использовать ядра для различных языков:
IPython kernel (по умолчанию), поддержка Python 2.x и 3.x
IRkernel для статистического анализа и data science
Almond kernel для JVM-языков и Apache Spark
IRuby kernel для скриптинга
IJulia для научных вычислений
Xeus-cling для компилируемых языков
Node.js kernel для веб-разработки
Gophernotes для Go разработки
EvCxR kernel для Rust
Octave kernel для математических вычислений
SQL kernels для работы с базами данных
Bash kernel для системного администрирования
💡 Примечание: Каждый пользователь может устанавливать дополнительные ядра в свое личное окружение без необходимости системных привилегий.
| Параметр | По умолчанию | Описание |
|---|---|---|
venv_dir |
/opt/jupyterhub/venv | Директория виртуального окружения |
root_dir |
/opt/jupyterhub | Корневая директория для конфигурации |
data_dir |
/var/lib/jupyterhub | Директория для данных (cookies, sqlite) |
bind_host |
0.0.0.0 | IP адрес для привязки |
bind_port |
8000 | Порт для HTTP сервера |
base_url |
/jupyter | Базовый URL префикс |
admin_users |
root | Администраторы (через пробел/запятую) |
После установки JupyterHub доступен по адресу:
http://<host>:8000/jupyter/hub/
Вход осуществляется с использованием учетных данных системных пользователей Linux.
Пользователи, указанные в параметре admin_users, получают права администратора.
Одна из ключевых возможностей бандла — полная поддержка LaTeX для создания научных публикаций и технической документации непосредственно в Jupyter Notebook.
LaTeX — довольно капризная система, особенно для русскоязычных публикаций. Полная установка и настройка LaTeX может быть сложной задачей, требующей:
Inline формулы:
$E = mc^2$
Block формулы:
$$\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}$$
Экспорт в PDF:
jupyter nbconvert --to pdf my_notebook.ipynb
Пользователи могут создавать собственные Python ядра с уникальными наборами пакетов, не затрагивая системное окружение или других пользователей.
Прямо из notebook можно устанавливать пакеты Python в текущее ядро:
%pip install pandas numpy scikit-learn
%pip install --upgrade matplotlib
%pip list # просмотр установленных пакетов
# Создаем виртуальное окружение
python3 -m venv ~/my_custom_env
source ~/my_custom_env/bin/activate
# Устанавливаем необходимые пакеты
pip install ipykernel pandas scikit-learn tensorflow
# Регистрируем как Jupyter kernel
python -m ipykernel install --user --name=my_custom_kernel --display-name="My Custom Python"
Бандл поддерживает централизованную установку расширений JupyterLab через конфигурацию ADCM. Администраторы могут предустанавливать расширения для всех пользователей.
⚠️ Управление расширениями:
Бандл включает множество интересных решений: