Павел Клеменков
Big Data and Data Engineering
О курсе
В курсе мы рассмотрим наиболее популярный инструментарий для работы с большими данными в индустрии - экосистему Apache Hadoop. Студенты научатся эффективному использованию распределенной файловой системы HDFS. Освоят парадигму MapReduce, перенесутся на следующий уровень абстракции на примере Apache Hive. Большая часть курса будет посвящена лингва франка современного мира больших данных - Apache Spark. Студенты научатся эффективно использовать как пакетный, так и потоковый режим обработки. Освоят библиотеку машинного обучения Spark ML и тонкости распределенных алгоритмов машинного обучения. Часть занятий будет посвящена NoSQL подходу к хранению данных на примере Apache Cassandra и Apache HBase.
Основой всего курса станет проект, в котором каждый студент сможет реализовать end-to-end конвейер получения, обработки и хранения больших данных.
Команда курса
Павел Клеменков
Лектор
Артем Трунов
Поддержка и семинары
Программа курса
HDFS. Распределенная файловая система Hadoop
  1. Основные принципы архитектуры HDFS.
  2. Namenode и datanode.
  3. Понятие блока.
  4. Репликация и отказоустойчивость.
  5. Процесс чтения файла.
  6. Процесс записи файла.
  7. Топология кластера и понятие близости.
MapReduce
  1. Введение в парадигму MapReduce.
  2. MapReduce программа с помощью утилит командной строки.
  3. MapReduce в Hadoop. Понятие mapper и reducer.
  4. Поток данных, локальность данных.
  5. Оптимизация вычислений, функции комбайнеры.
  6. Hadoop streaming на языке Python.
Hive. Система управления базами данных поверх Hadoop
  1. Архитектура Hive и сравнение с традиционными СУБД.
  2. Язык запросов HiveQL.
  3. Управляемые и внешние таблицы.
  4. Партиции и бакеты.
  5. Форматы хранения.
  6. Пользовательские функции и UDF.
  7. Hive streaming на языке Python.
Введение в Apache Spark
  1. Зачем нужен Spark? В чем проблема Apache Hadoop?
  2. Компоненты Spark и краткая история разработки.
  3. Архитектура Spark и SparkContext.
  4. Введение в RDD. Resilient distributed dataset.
  5. Два типа операций и lineage graph.
  6. Кэширование.
  7. Paired RDD, слияния и аггрегации.
  8. Broadcast переменные и аккумуляторы.
Spark SQL
  1. Мотивация создания Spark SQL, вспоминаем RDD.
  2. Как создать DataFrame?
  3. Зачем нужна схема?
  4. Обзор Spark SQL. Проекции и выборки.
  5. Встроенные функции.
  6. Слияния и введение анализ плана запроса.
  7. Подсчет агрегатов и статистик.
  8. Пользовательские функции.
  9. Работа со временем и оконные функции.
Оптимизация Spark программ
  1. Модель исполнения программы.
  2. Shuffle, партиционирование.
  3. Shuffle, сериализация.
  4. Оптимизация пользовательских функций.
  5. Оптимизатор запросов Catalyst.
  6. Примеры оптимизаций.
  7. Алгоритмы слияния.
  8. Оптимизация слияний в Spark.
Spark ML. Классификация и регрессия
  1. Векторные и матричные операции.
  2. Распределенные матрицы и подсчет SVD.
  3. ML pipeline, архитектура и компоненты.
  4. Обзор Kaggle toxic comments challenge.
  5. Построение baseline решения.
  6. Работа с несбалансированными выборками.
  7. Feature engineering в Spark ML.
  8. Расчет метрик качества и кросс-валидация.
Spark ML. Кластеризация и ALS
  1. Алгоритм K-Means в Spark.
  2. K-means для улучшения Kaggle toxic comments challenge.
  3. Тематическое моделирование, LDA, дальнейшее улучшение Kaggle toxic comments challenge.
  4. ALS как метод наименьших квадратов со скрытыми переменными.
  5. Построение пайплайна рекомендаций с помощью ALS.
Промышленный Spark ML
  1. Обзор пайплайнов.
  2. Эстиматоры и трансформеры.
  3. Кастомный эстиматор.
  4. Кастомный трансформер.
  5. Интеграция scikit-learn в Spark ML pipeline.
  6. Интеграция XGBoost в Spark ML pipeline.
  7. Распределенный подбор гиперпараметров.
  8. Кросс-валидация.
Structured Streaming
  1. Введение в обработки потоковых данных.
  2. Распределенная отказоустойчивая шина данных Apache Kafka.
  3. Structured streaming в Apache Spark и семантики доставки данных.
  4. Structured streaming и Spark ML. Строим антифрод пайплайн для данных реального времени.
NoSQL и Apache Cassandra
  1. Зачем нужен NoSQL, сравниваем с реляционными БД.
  2. Введение в Apache Cassandra.
  3. Понятие узла.
  4. Понятие кольца.
  5. Ключи кластеризации и партиционирования.
  6. Запись данных.
  7. Чтение данных.
  8. Протокол GOSSIP.
  9. Уплотнение данных.
  10. CQL язык запросов Cassandra.