Лекции Техносферы. 2 семестр. Методы распределенной обработки больших объемов данных в Hadoop
Предлагаем вашему вниманию новый курс лекций Техносферы. Он представляет собой введение в Hadoop, фокусируясь на проектировании и реализации распределенных алгоритмов, которые могут применяться в различных сферах: обработка текстов, графов, связанных данных и т.п. Также рассматриваются различные компоненты платформы Hadoop и программные модели. Целью курса является знакомство студентов со стеком технологий Hadoop, применяемых для хранения, доступа и обработки больших объемов данных. Преподаватели курса: Алексей Романенко, Михаил Фирулик, Николай Анохин.Лекция 1. Введение в Big Data и MapReduceЧто такое «большие данные». История возникновения этого явления. Необходимые знания и навыки для работы с большими данными. Что такое Hadoop, где он применяется. Что такое «облачные вычисления», история возникновения и развития технологии. Web 2.0. Вычисление как услуга (utility computing). Виртуализация. Инфраструктура как сервис (IaaS). Вопросы параллелизма. Управление множеством воркеров. Дата-центры и масштабируемость. Типичные задачи Big Data. MapReduce: что это такое, примеры. Распределённая файловая система. Google File System. HDFS как клон GFS, его архитектура.[embedded content]
Лекция 2. Основы Hadoop История Hadoop и его применение. Хранение данных, кластер Hadoop. Системные принципы. Горизонтальное масштабирование вместо вертикального. Код к данным. Отказы оборудования. Инкапсуляция сложности реализации. Сравнение с СУБД (RDBMS). Экосистема Hadoop. Дистрибутивы, вендоры, поддерживаемые ОС. Полезная литература. Hadoop на Cloudera VM. Импорт и запуск VM. Копирование файлов в HDFS. Запуск MapReduce-задачи в Hadoop. Проверка результатов.[embedded content]
Лекция 3. Распределённая файловая система HDFS Задачи, для которых подходит и не подходит HDFS. Демоны HDFS. Файлы и блоки. Репликация блоков. Клиенты, Namenode и Datanodes. Чтение и запись файла. Namenode: использование памяти. Устойчивость к отказам в Namenode. Доступ к HDFS, в том числе через прокси. Команды оболочки shell. Копирование данных в shell, удаление и статистика. Команда fsck. Права в HDFS. Команда DFSAdmin. Балансер. File System Java API. Реализация File System. Объект Configuration. Чтение данных из файла и запись в него. Подстановки (globbing).[embedded content]
Лекция 4. MapReduce в Hadoop (введение) Рабочий процесс MapReduce. Hadoop MapReduce и HDFS. Выполнение MapReduce. Архитектура и работа первой версии MapReduce. Hadoop API (типы, классы). WordCount (Congigure Job, Mapper, Reducer). Reducer в качестве Combiner. Типы данных в Hadoop. InputSplit, InputFormat, OutputFormat. Shuffle и Sort в Hadoop. Запуск и отладка задач. Hadoop Streaming. Streaming в MapReduce.[embedded content]
Лекция 5. MapReduce в Hadoop (алгоритмы) WordCount (baseline, In-mapper combining, среднее значение, различающиеся значения). Кросс-корреляция (pairs, stripes). Реляционные паттерны MapReduce (Selection, Projection, Union, Intersection, Difference, Symmetric Difference, GroupBy и Aggregation, Repartition Join, Replicated Join, TF-IDF).[embedded content]
Лекция 6. MapReduce в Hadoop (графы) Граф как структура данных. Задачи и проблемы на графах. Графы и MapReduce. Матрица смежности. Списки смежности. Поиск кратчайшего пути. Алгоритм Дейкстры. Параллельный BFS: алгоритм, псевдокод, итерации, критерий завершения, сравнение с Дейкстерой. BFS weighted: edges, критерий завершения, сложности. Графы и MapReduce. PageRank: что это такое, где применяется. Вычисление PageRank, упрощения для него. PageRank на MapReduce. Полный PageRank, сходимость. Другие классы проблем на графах. Основные проблемы для алгоритмов на графах. Улучшение партиционирования. Schimmy Design Pattern.[embedded content]
Лекция 7. Введение в Pig и Hive Что такое Pig, для чего используется. Pig и MapReduce. Основные возможности. Компоненты. Режимы выполнения. Запуск Pig. Pig Latin. Операции DUMP и STORE. Большой объём данных. Команда LOAD. Типы данных для схемы. Pig Latin (cредства диагностики, группировка, Inner и Outer bag, FOREACH, функция TOKENIZE, оператор FLATTEN, WordCount, Inner и Outer Join). Hive (архитектура, интерфейс, концепция, создание таблицы, загрузка данных, выполнение запроса, Inner и Outer Join, WordCount).[embedded content]
Лекция 8. NoSQL, HBase, Cassandra Масштабирование вверх. Масштабирование RDBMS (master/slave, sharding). Что такое NoSQL. Dynamo и BigTable. Теория CAP. Модель консистентности. Eventual Consistency. Типы NoSQL. Key/Value. Schema-Less. Что такое HBase, когда его нужно и когда не нужно использовать. Модель данных HBase. Column Family. Timestamp. Ячейки. Архитектура и компоненты HBase. Распределение ключей в RegionServer. Хранение данных в HBase. Master и Zookeeper. Доступ к HBase. Column Family как единица хранения. Запрос данных из HBase. Что такое Cassandra. Типичный NoSQL API. Модель данных. Cassandra и консистентность.[embedded content]
Лекция 9. ZooKeeper Что такое ZooKeeper, его место в экосистеме Hadoop. Неправда о распределённых вычислениях. Схема стандартной распределённой системы. Сложность координации распределённых систем. Типичные проблемы координации. Принципы, заложенные в дизайн ZooKeeper. Модель данных ZooKeeper. Флаги znode. Сессии. Клиентский API. Примитивы (configuration, group membership, simple locks, leader election, locking без herd effect). Архитектура ZooKeeper. ZooKeeper DB. ZAB. Обработчик запросов.[embedded content]
Лекция 10. Apache Mahout Что такое Apache Mahout. Реализованные алгоритмы. Классификация (Naive Bayes, k-Means). Рекомендации (коллаборативная фильтрация, Item-based, алгоритм Slop One, Apache.teste, Item-based с Hadoop, Mahout со Spark, co-occurrence recommenders).[embedded content]
Лекция 11. Вычислительная модель Pregel Web 2.0 и социальные графы. Примеры графов. Задачи обработки графов. Средства обработки больших графов. Pregel (что это такое, концепция). Vertex. Метод compute. Combiner. Aggregator. Изменение графа. Giraph (архитектура, выполнение программы, отказоустойчивость). PageRank. Кратчайшие пути. Производительность.[embedded content]
Лекция 12. Spark Мотивация. RDD. Программная модель Spark. Higher-Order Functions. Трансформация RDD (Map, Reduce, Join, CoGroup, Union и Sample). RDD actions. SparkContext. Создание RDD. Общие переменные (broadcast, accumulator). Движок Apache Spark. Программный интерфейс Spark. Lineage. Зависимости между RDD (Narrow, Wide). Расписание задач. Отказоустойчивость RDD. Управление памятью. Приложения, которые подходят и не подходят для RDD.[embedded content]
Лекция 13. YARN Что такое YARN, для чего он нужен. YARN и старый MapReduce. Компоненты MapReduce на YARN. Выполнение MR-задачи на YARN. Запуск MapReduce-задачи. Инициализация задачи. Инициализация MRAppMaster. MRAppMaster и Uber Job. Назначение задач. Управление памятью (создание контейнеров для запуска задач, контроль памяти для каждой задачи, JVM-куча, виртуальная память). Выполнение задач. Обновления статуса. Веб-интерфейс Resource Manager. Сбои выполнения задач. Сбои Application Master. Сбои Node Manager. Сбои Resource Manager. Расписание задач.[embedded content]
Лекция 14. Hadoop в Поиске Mail.Ru История внедрения, компоненты Поиска. Почему Hadoop? Почему HBase? Поисковый робот (Old school, New generation H). Что мы храним в HBase? Работа с Hadoop. Трудности перевода. Эксплуатация (Ganglia). Полезные уроки Hadoop и HBase.[embedded content]
Предыдущие выпуски Технопарк: Техносфера: Подписывайтесь на youtube-канал Технопарка и Техносферы!