Курс предназначен для студентов старших курсов бакалавриата и магистратуры, изучающих распределенные системы, инженерию данных и аналитику больших данных. Цель курса — дать системное понимание архитектур и инструментов для построения масштабируемых, отказоустойчивых платформ обработки данных. В фокусе — экосистема Hadoop, парадигма MapReduce, фреймворк Apache Spark для пакетных и потоковых вычислений, а также принципы работы с распределенными хранилищами и SQL-движками. Курс формирует практические навыки разработки, оптимизации и развертывания ETL/ELT-пайплайнов для работы с большими объемами информации.
Цель освоения дисциплины
Сформировать фундаментальное понимание принципов работы распределенных систем (Distributed Systems), включая теорему CAP, горизонтальное масштабирование и отказоустойчивость.
Изучить экосистему Hadoop и современные инструменты обработки данных, переходя от классической парадигмы MapReduce к вычислениям в оперативной памяти (In-memory computing) с Apache Spark.
Освоить методы пакетной (Batch) и потоковой (Streaming) обработки данных для построения эффективных ETL/ELT пайплайнов.
Научиться применять вероятностные структуры данных (Approximate algorithms) для оптимизации вычислений на сверхбольших объемах информации.
Развить навыки проектирования архитектуры платформ данных, включая выбор хранилищ (NoSQL, HDFS, S3) и инструментов SQL-аналитики (Trino).
Планируемые результаты обучения
Разрабатывает распределенные приложения для обработки данных с использованием фреймворка Apache Spark (PySpark/Scala), эффективно используя RDD и DataFrames.
Проектирует и настраивает потоковые конвейеры обработки данных (Streaming Pipelines) с использованием Apache Kafka и Spark Structured Streaming.
Оптимизирует производительность Spark-задач: читает планы запросов, устраняет перекосы данных (data skew), настраивает управление памятью и сериализацию.
Использует инструменты SQL-on-Hadoop (Trino/Hive) для интерактивной аналитики и визуализации данных, хранящихся в распределенных файловых системах.
Применяет аппроксимационные алгоритмы (HyperLogLog, Bloom Filter, Count-Min Sketch) для задач, где точный подсчет невозможен или слишком дорог.
Работает с распределенными NoSQL базами данных (Apache Cassandra), понимая принципы моделирования данных на основе запросов.
Аргументирует выбор архитектурных паттернов (Lambda vs Kappa architecture) при проектировании отказоустойчивых платформ для данных.
Содержание учебной дисциплины
Модуль 1. Фундамент: Hadoop и SQL
Модуль 2. Apache Spark и Пакетная обработка
Модуль 3. Потоковая обработка и NoSQL
Модуль 4. Алгоритмы и Архитектура
Элементы контроля
Домашнее задание 4
Optimization & Approximate Algos: Оптимизация "медленного" Spark-джобы (устранение Skew) и реализация подсчета уникальных пользователей через HyperLogLog.
Домашнее задание 3
Spark Streaming & Kafka: Построение пайплайна: чтение потока из Kafka, агрегация данных в реальном времени (например, "топ товаров за последние 10 минут"), запись результата в консоль или БД.
Домашнее задание 2
Spark Core & SQL: Анализ большого датасета (например, логи такси NYC или данные e-commerce). Использование DataFrame API, JOIN-ов, оконных функций. Оптимизация формата хранения (Parquet).
Домашнее задание 1
Hadoop/MapReduce: Реализация задачи WordCount (или подсчет N-грамм) на чистом MapReduce (Java/Python Streaming) и сравнение с реализацией на HDFS cli.
Тематический тест 3
Тематический тест 2
Тематический тест 1
Итоговый проект
Экзамен
Итоговое испытание проводится в форме защиты проекта и/или устного опроса по коду проекта с дополнительными теоретическими вопросами.
Студент должен продемонстрировать владение терминологией, умение объяснять выбор технологий и способность читать планы выполнения Spark-запросов. Вопросы могут касаться настройки кластера, выбора уровня консистентности в Cassandra или стратегии партиционирования в Kafka.
Промежуточная аттестация
2025/2026 4th module
Формула результирующей оценки:
Oрезульт=0,4⋅Oдз+0,2⋅Oтесты+0,4⋅Oпроект
Где:
O дз — средняя оценка за 4 домашние задания.
O квизы — средняя оценка за короткие тесты по теории.
O проект— оценка за итоговый проект
Список литературы
Рекомендуемая основная литература
Brajesh Mishra. (2020). Big Data Analysis Using Hadoop Map Reduce. https://doi.org/10.26562/irjcs.2020.v0705.005
Jarrett Goldfedder. (2020). Building a Data Integration Team : Skills, Requirements, and Solutions for Designing Integrations. Apress.
Ryza, S., Laserson, U., Owen, S., & Wills, J. (2017). Advanced Analytics with Spark : Patterns for Learning From Data at Scale (Vol. Second edition). Sebastopol, CA: Reilly - O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1533378
Мартишин С.А., Симонов В.Л., Храпченко М.В. - Базы данных: Работа с распределенными базами данных и файловыми системами на примере MongoDB и HDFS с использованием Node.js, Express.js, Apache Spark и Scala - 978-5-16-019845-3 - ИНФРА-М - 2024 - https://znanium.ru/catalog/product/2139860 - 2139860 - ZNANIUM
Рекомендуемая дополнительная литература
Doan, A., Halevy, A., & Ives, Z. G. (2012). Principles of Data Integration. [Waltham, MA]: Morgan Kaufmann. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=465063
Valentine, C. (2014). Hadoop : 94 Most Asked Questions —— What You Need to Know. Emereo Publishing.
White, T. (2011). Hadoop : The Definitive Guide: Vol. 2nd ed., updated. Yahoo Press.
Преподаватель
Радчук Дмитрий Геннадьевич
Программа дисциплины
Аннотация
Цель освоения дисциплины
Планируемые результаты обучения
Содержание учебной дисциплины
Элементы контроля
Промежуточная аттестация
Список литературы
Рекомендуемая основная литература
Рекомендуемая дополнительная литература
Авторы