docs(course): make JupyterLab the primary notebook interface
This commit is contained in:
1 parent
863d658a5f
commit
db8f275ea0
8 files changed
+138
-88
No files matched your search
+24
-25
@@ -12,7 +12,7 @@
|
||||
|
||||
1. Подготовь Docker, ресурсы и локальную копию репозитория.
|
||||
2. Скачай образы, собери окружение и проверь запуск сервисов.
|
||||
3. Открой первый ноутбук в браузерном VS Code и проверь результат вычисления.
|
||||
3. Открой первый ноутбук в JupyterLab и проверь результат вычисления.
|
||||
4. Продолжи по [программе курса](./docs/course_program.md#маршрут-по-модулям).
|
||||
|
||||
Датасет Taxi понадобится перед Модулем 3, DBeaver необязателен и понадобится
|
||||
@@ -23,13 +23,13 @@
|
||||
## Что подготовить
|
||||
|
||||
- Docker с запущенным движком и Docker Compose 2.17+ с BuildKit.
|
||||
- Современный браузер; основной интерфейс курса — VS Code на `localhost:8889`.
|
||||
- Современный браузер; основной интерфейс курса — JupyterLab на `localhost:8888`.
|
||||
- Git для скачивания репозитория или его распакованную ZIP-копию.
|
||||
- Свободные порты из таблицы ниже и доступ к источникам образов и зависимостей.
|
||||
|
||||
Команды ниже рассчитаны на Bash: терминал Linux/macOS или терминал Linux
|
||||
в WSL2 на Windows с включенной интеграцией Docker Desktop. Выполняй их на
|
||||
машине, где работает Docker. Терминал внутри браузерного VS Code для запуска
|
||||
машине, где работает Docker. Терминал внутри JupyterLab для запуска
|
||||
`docker compose` не подходит.
|
||||
|
||||
### Системные требования
|
||||
@@ -94,8 +94,8 @@ docker compose config --quiet
|
||||
| Trino UI | `http://localhost:8090` | Проверка координатора Trino |
|
||||
| MinIO API | `http://localhost:9000` | S3-compatible endpoint |
|
||||
| MinIO Console | `http://localhost:9001` | Просмотр бакетов и файлов |
|
||||
| VS Code в браузере | `http://localhost:8889` | Основная точка входа в практику |
|
||||
| JupyterLab | `http://localhost:8888` | Запасной интерфейс для ноутбуков |
|
||||
| JupyterLab | `http://localhost:8888` | Основная точка входа в практику |
|
||||
| VS Code в браузере | `http://localhost:8889` | Альтернативный интерфейс, по желанию |
|
||||
| PostgreSQL | `localhost:5432` | JDBC-каталог Iceberg, нужен для диагностики |
|
||||
|
||||
## Быстрый запуск
|
||||
@@ -165,15 +165,15 @@ docker compose ps -a
|
||||
| --- | --- |
|
||||
| [Spark Master](http://localhost:8080) | Два worker-а в состоянии `ALIVE` |
|
||||
| [MinIO Console](http://localhost:9001) | После входа `minioadmin` / `minioadmin` виден бакет `lakehouse` — контейнер для файлов курса |
|
||||
| [VS Code](http://localhost:8889) | Слева папки **Ноутбуки**, **Примеры (только чтение)**, **Документация (только чтение)** |
|
||||
| [JupyterLab](http://localhost:8888) | Слева список ноутбуков `01_…` — `08_…` |
|
||||
|
||||
В [Trino UI](http://localhost:8090) для входа достаточно имени, например `student`;
|
||||
пароль в стенде не задан. Сейчас достаточно проверить, что интерфейс открывается.
|
||||
Чтение общих таблиц через Trino разберем в Модуле 6.
|
||||
|
||||
Этот маршрут предполагает Docker на твоем компьютере: `localhost` относится
|
||||
к машине с браузером. Доступ к VS Code на удаленном сервере описан отдельно
|
||||
в [инструкции по SSH-туннелю](./docs/stack_reference.md#vs-code-в-браузере).
|
||||
к машине с браузером. Доступ к JupyterLab на удаленном сервере описан отдельно
|
||||
в [инструкции по SSH-туннелю](./docs/stack_reference.md#jupyterlab).
|
||||
|
||||
## Роли сервисов в стенде
|
||||
|
||||
@@ -183,26 +183,23 @@ docker compose ps -a
|
||||
| `PostgreSQL` | `catalog`: хранит метаданные JDBC-каталога Iceberg |
|
||||
| `Spark` | `compute`: выполняет PySpark и Spark SQL задания |
|
||||
| `Trino` | `compute`: читает те же таблицы через общий каталог |
|
||||
| `VS Code / JupyterLab` | Интерфейсы для учебных ноутбуков |
|
||||
| `JupyterLab` | Интерфейс для учебных ноутбуков |
|
||||
|
||||
## Как работать с ноутбуками
|
||||
|
||||
Ноутбук — файл с пояснениями, кодом и сохраненным выводом. Ядро — процесс Python,
|
||||
который исполняет код и хранит переменные до остановки.
|
||||
|
||||
1. Открой `http://localhost:8889` в отдельной вкладке браузера.
|
||||
2. Если сверху виден **Restricted Mode**, нажми **Manage → Trust** и закрой окно
|
||||
Workspace Trust. Подтверди доверие только к своей копии этого учебного
|
||||
репозитория: в Restricted Mode запуск ноутбуков ограничен.
|
||||
3. В папке **Ноутбуки** открой `01_environment_and_smoke_test.ipynb`.
|
||||
4. Нажми **Select Kernel → Python Environments** и выбери Python с путём
|
||||
`/usr/bin/python3`. Он находится внутри контейнера `ide`, где уже есть
|
||||
зависимости курса. Пункт **Existing Jupyter Server** здесь не нужен.
|
||||
5. Запусти первую кодовую ячейку кнопкой слева или `Shift+Enter`, затем остальные
|
||||
1. Открой `http://localhost:8888` в отдельной вкладке браузера.
|
||||
2. Дважды нажми на `01_environment_and_smoke_test.ipynb` в списке файлов слева.
|
||||
3. Если появится выбор ядра, выбери **Python 3 (ipykernel)**. Изменить ядро можно
|
||||
через **Kernel → Change Kernel…**. Оно работает внутри контейнера `jupyter`,
|
||||
где уже есть зависимости курса. Дождись состояния **Idle** в нижней панели.
|
||||
4. Выдели первую кодовую ячейку и запусти её через `Shift+Enter`, затем остальные
|
||||
ячейки по порядку. Результат появится под ячейкой. Сохрани ноутбук через
|
||||
**File → Save** (`Ctrl+S`; на macOS — `Cmd+S`).
|
||||
**File → Save Notebook** (`Ctrl+S`; на macOS — `Cmd+S`).
|
||||
|
||||
Терминал VS Code тоже работает внутри контейнера. Команды `docker compose`
|
||||
Терминал JupyterLab тоже работает внутри контейнера. Команды `docker compose`
|
||||
выполняй в терминале хоста, откуда запускал стенд.
|
||||
|
||||
### Как понять, что первый запуск прошел
|
||||
@@ -228,17 +225,19 @@ expected_sum=499999500000
|
||||
Правила запуска ячеек, перехода между модулями и сохранения данных собраны в
|
||||
[памятке учащегося](./docs/study_workflow.md).
|
||||
|
||||
Запасной интерфейс — JupyterLab на `http://localhost:8888`. Файлы ноутбуков общие,
|
||||
а ядра и переменные Python отдельные. Перед переходом сохрани ноутбук и заверши
|
||||
Spark-сессию через `spark.stop()`; не редактируй один файл в двух интерфейсах
|
||||
одновременно.
|
||||
По желанию можно работать в [VS Code на `localhost:8889`](./docs/stack_reference.md#vs-code-в-браузере):
|
||||
он запускается вместе со стендом. Некоторые сочетания браузера, расширений и
|
||||
средств защиты мешают открытию ноутбуков в VS Code. В таком случае продолжи
|
||||
курс в JupyterLab. Файлы общие, а ядра Python отдельные: перед сменой интерфейса
|
||||
сохрани ноутбук, выполни `spark.stop()` и останови ядро. Не редактируй один файл
|
||||
в двух интерфейсах одновременно.
|
||||
|
||||
## Базовая диагностика
|
||||
|
||||
Начни с `docker compose ps -a` и логов проблемного сервиса, например:
|
||||
|
||||
```bash
|
||||
docker compose logs --tail=100 ide
|
||||
docker compose logs --tail=100 jupyter
|
||||
```
|
||||
|
||||
Выбери свой симптом в [таблице диагностики](./docs/study_workflow.md#если-что-то-не-работает).
|
||||
|
||||
Reference in new issue
Block a user