• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
26
Апрель

Технологии промышленной разработки ПО

2025/2026
Учебный год
RUS
Обучение ведется на русском языке
4
Кредиты
Статус:
Курс по выбору
Когда читается:
3-й курс, 3, 4 модуль

Преподаватель

Программа дисциплины

Аннотация

Курс предназначен для студентов старших курсов бакалавриата и магистратуры, изучающих распределенные системы, инженерию данных и аналитику больших данных. Цель курса — дать системное понимание архитектур и инструментов для построения масштабируемых, отказоустойчивых платформ обработки данных. В фокусе — экосистема 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.
  • Jules S. Damji, Brooke Wenig, Tathagata Das, & Denny Lee. (2020). Learning Spark. O’Reilly Media.
  • 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.

Авторы

  • Оленчук Ольга Геннадьевна
  • Любавина Светлана Вячеславовна