- Зачем: модули 2–8 в новом процессе выбирали local[*] вместо Spark-кластера. - Что: master перенесён в общий spark-defaults.conf, smoke требует точный адрес кластера, документация и планы синхронизированы. - Проверка: фактическая инициализация всех восьми ноутбуков, повторный getOrCreate, распределённые вычисления, Iceberg/MinIO write-read-cleanup и docker compose config прошли.
8.6 KiB
План развития курса «Lakehouse без магии»
Статус: ближайшие доработки определены, реализация впереди. Последнее обновление: 2026-09-15.
Здесь собираем отзывы студентов, выбираем следующие улучшения и объясняем их порядок. Подробные задания, критерии приёмки и актуальный статус исполнения хранятся в Gitea Issues.
Текущие рамки курса задаёт PRD, а состав уроков — программа. Запись в этом плане означает будущую работу. При реализации изменения сначала обновляем соответствующий канонический документ, затем учебные материалы и ссылки на них.
Обратная связь
Базовая настройка Spark-сессии
- Источник: отзыв Арсения Деева, переданный автором курса и зафиксированный 2026-09-15. На момент отзыва студент дошёл до модуля 4.
- Наблюдение студента: курс подходит начинающим, но не хватает базовой настройки Spark-сессии без сложного тюнинга.
- Учебный пробел: студент использует подготовленную сессию; ему нужна практика, чтобы понять, какие настройки потребуются вне готового ноутбука.
- Решение: добавить короткую обязательную практику после модуля 2, перед работой с raw-данными в модуле 3. До её разработки проверить воспроизводимость создания сессий.
Отзыв относится к уже пройденной части курса. Замечания по модулям 5–8 пока не получены.
Ближайшие работы
1. Проверить и исправить создание Spark-сессий
Статус: выполнено в задаче #1.
Задача: #1 — подключение Spark-сессий в новом ядре.
Проверка в отдельных процессах показала: модуль 1 подключался к кластеру, а модули 2–8 без spark.master запускали Spark в local[*]. Теперь общий spark-defaults.conf задаёт spark://spark-master:7077, а helper модуля 1 и остальные ноутбуки используют этот единый источник.
Результат: каждый ноутбук подключается к ожидаемому Spark-кластеру после перезапуска ядра. Повторный getOrCreate() в том же ядре возвращает существующую сессию; это поведение и источник настроек объяснены в onboarding и техническом reference. Подробные проверки сохранены в задаче #1.
2. Добавить практику «Как настроен Spark в нашем стенде»
Статус: запланировано; зависит от результата работы 1.
Задача: #2 — практика базовой настройки SparkSession, заблокирована задачей #1.
Практику разместить в начале модуля 3. Ориентир — 20–30 минут; фактическую длительность проверить при прохождении.
Студент должен научиться:
- объяснять роли
SparkSession,SparkContext, driver и executors на примере стенда; - читать код с
master,appNameиgetOrCreate; - находить источник настройки: конфигурационный файл, параметры запуска или код;
- проверять фактический master и выбранные настройки каталога Iceberg и MinIO;
- различать настройки, меняемые во время работы, и настройки, требующие нового запуска;
- понимать, что повторное выполнение ячейки может использовать уже существующую сессию.
Практика и checkpoint: студент заполняет небольшой шаблон создания сессии, задаёт подключение к кластеру и имя приложения, использует подготовленные настройки каталога, проверяет фактическое подключение и читает небольшую учебную Iceberg-таблицу. Таблица должна создаваться самой практикой: демонстрационные таблицы модуля 2 могут быть удалены при его завершении. Студент объясняет, какие настройки он задал сам, какие предоставил стенд и что потребуется повторить в новом ядре.
При реализации обновить learning outcomes и scope в PRD, содержание и checkpoint модуля 3 в программе, ноутбук и связанные справочные материалы. Сохранить структуру из восьми модулей.
Граница темы: базовая настройка подключения и жизненный цикл сессии. Подробный подбор памяти, числа executors, shuffle и GC остаётся за рамками этой доработки.
3. Собрать замечания по оставшейся части курса
Статус: ожидается продолжение обратной связи.
По мере прохождения Арсением остальных модулей добавлять конкретные наблюдения в этот документ. После полного прохода выбрать следующие доработки с учётом повторяющихся затруднений, самостоятельности студента и общей длительности курса.
Новые issues создавать, когда понятны проблема, ожидаемый результат и способ его проверки.
Отложенные идеи
- Небольшой дополнительный опыт с числом партиций и наблюдением выполнения в Spark UI. Вернуться к нему после проверки объёма базовой практики; потребуется объяснить распределённое выполнение.
- Другие возможные расширения перечислены в разделе 7 программы. Их включение и порядок пока не определены.
Номер и дата следующего релиза пока не назначены.
Как обновлять этот план
Для нового предложения записывать: источник и этап прохождения → наблюдение → учебный пробел → предлагаемое изменение → проверяемый результат → статус и ссылка на issue.
После реализации добавлять ссылку на итог задачи и кратко отмечать, что изменилось для студента. Подробные критерии и ход исполнения сохранять в issue.
Выпущенные улучшения
Доработки из этого плана ещё не выпущены.