Бакалавриат
2019/2020
Методы и системы обработки больших данных
Статус:
Курс по выбору (Прикладная математика и информатика)
Направление:
01.03.02. Прикладная математика и информатика
Где читается:
Факультет компьютерных наук
Когда читается:
4-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Преподаватели:
Ивченко Олег Николаевич
Язык:
русский
Кредиты:
5
Контактные часы:
60
Программа дисциплины
Аннотация
Данный курс призван дать фундаментальные знания в области хранения и обработки данных, для работы с которыми недостаточно одной машины со стандартными аппаратными характеристиками. Примерами таких данных могут быть логи пользователей определённого сервиса, коллекции медиа-файлов или статей Википедии. Сейчас эти подходы активно применяются в компаниях, для которых критично провести анализ больших объёмов данных в кратчайшие сроки. Это могут быть компании, владеющие: - поисковиками (например, Google, Яндекс, Microsoft, Yahoo! и др.), - социальными сетями и блогами (Facebook, Twitter, ВКонтакте, LinkedIn и др.), - рекомендательными сервисами (например, Кинопоиск от Яндекс). Практическую часть данного курса составляют программы, разрабатываемые с использованием фреймворков экосистемы Hadoop.
Цель освоения дисциплины
- Овладение алгоритмами, парадигмами и инструментами для пакетной и потоковой обработки больших объёмов данных
- Приобретение навыков проектирования архитектур, применения инструментов разработки для анализа больших объемов данных
Планируемые результаты обучения
- Знать типы хранилищ больших объёмов данных и их внутреннее устройство
- Применять базовые навыки в языке Java для разработки распределённых приложений анализа больших данных
- Уметь решать задачи статистики, задачи поиска и индексации, задачи машинного обучения на Hadoop кластере
- Понимать каким образом SQL-выражения транслируются в MapReduce-задания и уметь применять эти знания в реальных задачах
- Знать подходы к потоковой и пакетной обработке данных
- Уметь проектировать базы данных в условиях большого количества разреженных данных
- Уметь диагностировать и решать базовые проблемы инфраструктуры обработки больших данных
Содержание учебной дисциплины
- ВведениеВводное занятие. Исторический экскурс в большие данные
- Распределённые файловые системы. HDFSРаспределённые файловые системы (GFS, HDFS). Её составляющие. Их достоинства, недостатки и сфера применения. Чтение и запись в HDFS. HDFS APIs: WebUI, shell, Java API
- Java для BigData-инженеровJava для BigData-инженеров. Синтаксис Java. Классы и пакеты, статические методы и экземпляры классов. Области видимости полей и методов. Generics.
- MapReduceПарадигма MapReduce. Основная идея, формальное описание. Обзор реализаций. Сравнение с MPI. Hadoop. Схема его работы, роли серверов в Hadoop-кластере. Элементы MapReduce-задачи. Hadoop Java API. Цепочки Hadoop-задач Дополнительные элементы MapReduce-задачи (combiner, partitioner, comparator). Счётчикик в Hadoop. Форматы хранения файлов в Hadoop. Паттерны хранения составных ключей-значений в MapReduce (pairs, stripes). Hadoop Streaming. Joins в MapReduce и их типы. Планировщик задач YARN.
- SQL поверх больших данныхSQL поверх BigData. Фреймворк Hive Оптимизации Hive: MapJoins, Sampling, партиционирование, бакетирование. Обработка несбалансированных данных.
- Пакетная обработка данных. Apache SparkMapReduce vs. Spark. Компоненты Spark и архитектура Spark-задачи. Spark RDD API. Кеширование RDD, итеративные вычисления, actions & transformations. Режимы работы Spark Spark DataFrame: особенности и сравнение с Pandas DataFrame. Spark SQL + Hive. Агрегирование данных в Spark DataFrame. Оптимизации Spark.
- Real-time обработка данныхReal-time обработка данных. Семантики доставки и как их реализовать. Архитектуры Lambda и Kappa Spark Streaming. Stateful и Stateless подходы к обработке данных. Spark Structured Streaming и его отличие от Spark Streaming. Распределенная очередь для BigData. Apache Kafka. Kafka Strems, отличие от Spark Streaming.
- NoSQL и большие данныеHBase. Известные Key-value хранилища в больших данных. Основные компоненты BigTable-подобных систем и их назначение, отличие от реляционных БД. Чтение, запись и хранение данных в HBase. Minor- и major-компактификация. Надёжность и отказоустойчивость в HBase. Cassandra. Отличие архитектуры HBase от Сassandra. Чтение и запись данных. Отказоустойчивость. Примеры применения HBase и Cassandra.
- Администрирование сервисов обработки больших данныхОсновы администрирования сервисов. Системы мониторинга в BigData.
Элементы контроля
- Домашнее задание 1
- Контрольная работа 1
- Работа на семинарах 1
- Письменный экзамен
- Домашнее задание 2
- Домашнее задание 3
- Домашнее задание 4
- Домашнее задание 5
- Домашнее задание 6
- Контрольная работа 2
- Контрольная работа 3
- Контрольная работа 4
- Работа на семинарах 2
Промежуточная аттестация
- Промежуточная аттестация (2 модуль)Пром = Округление(0,3 * ДЗ 1 + 0,3 * ДЗ 2 + 0,1 * КР 1 + 0,1 * КР 2 + 0,2 * СЕМ 1) <br /> Окончательная оценка = Округление(0,4 * Пром + 0,2 * ДЗ3 + 0,15 * ДЗ4 + 0,1 * ДЗ5 + 0,15 * ДЗ6 + 0,05 * КР3+ 0,05 * КР4 + 0,1 * СЕМ2 + 0,2 ЭКЗ) - Окончательная оценка за дисциплину. Если "Окончательная оценка" > 10, ставится 10.
Список литературы
Рекомендуемая основная литература
- Большие данные : революция, которая изменит то, как мы живем, работаем и мыслим, Майер-Шенбергер, В., 2014
Рекомендуемая дополнительная литература
- Чак Лэм - Hadoop в действии. - Издательство "ДМК Пресс" - 2012 - 424с. - ISBN: 978-5-94074-785-7 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/39997